cpack win32

pull/1233/head
Jeff Becker 4 years ago committed by Jason Rhinelander
parent 8c84eac718
commit 7406dbc964

@ -8,6 +8,15 @@ endif()
set(PROJECT_NAME lokinet)
project(${PROJECT_NAME} C CXX)
set(LLARP_VERSION_MAJOR 0)
set(LLARP_VERSION_MINOR 6)
set(LLARP_VERSION_PATCH 2)
add_definitions(-DLLARP_VERSION_MAJOR=${LLARP_VERSION_MAJOR})
add_definitions(-DLLARP_VERSION_MINOR=${LLARP_VERSION_MINOR})
add_definitions(-DLLARP_VERSION_PATCH=${LLARP_VERSION_PATCH})
# Core options
option(USE_AVX2 "enable avx2 code" OFF)
option(USE_NETNS "enable networking namespace support. Linux only" OFF)
@ -298,3 +307,5 @@ if (NOT SHADOW)
add_subdirectory(jni)
endif(ANDROID)
endif()
include(cmake/installer.cmake)

@ -279,11 +279,11 @@ windows-debug: windows-debug-configure
windows-release-configure: $(LIBUV_PREFIX)
mkdir -p '$(BUILD_ROOT)'
$(CONFIG_CMD_WINDOWS) -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE='$(REPO)/contrib/cross/mingw.cmake' -DCMAKE_BUILD_TYPE=$(BUILD_TYPE) -DCMAKE_ASM_FLAGS='$(ASFLAGS)' -DCMAKE_C_FLAGS='$(CFLAGS)' -DCMAKE_CXX_FLAGS='$(CXXFLAGS)' -DLIBUV_ROOT=$(LIBUV_PREFIX)
$(CONFIG_CMD_WINDOWS) -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE='$(REPO)/contrib/cross/mingw.cmake' -DCMAKE_ASM_FLAGS='$(ASFLAGS)' -DCMAKE_C_FLAGS='$(CFLAGS)' -DCMAKE_CXX_FLAGS='$(CXXFLAGS)' -DLIBUV_ROOT=$(LIBUV_PREFIX) -DWITH_TESTS=OFF
windows-release: windows-release-configure
$(MAKE) -C '$(BUILD_ROOT)'
cp '$(BUILD_ROOT)/daemon/lokinet.exe' '$(REPO)/lokinet.exe'
cd '$(BUILD_ROOT)' && cpack -D CPACK_MONOLITHIC_INSTALL=1 -G NSIS ..
windows: windows-debug

@ -0,0 +1,11 @@
set(CPACK_PACKAGE_NAME "lokinet")
set(CPACK_PACKAGE_VENDOR "lokinet.org")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "lokinet - onion router thingydoo")
set(CPACK_PACKAGE_VERSION_MAJOR "${LLARP_VERSION_MAJOR}")
set(CPACK_PACKAGE_VERSION_MINOR "${LLARP_VERSION_MINOR}")
set(CPACK_PACKAGE_VERSION_PATCH "${LLARP_VERSION_PATCH}")
set(CPACK_PACKAGE_INSTALL_DIRECTORY "lokinet")
# This must always be last!
include(CPack)

@ -31,7 +31,7 @@ else()
install(TARGETS ${EXE} RUNTIME DESTINATION bin)
install(TARGETS ${CTL} RUNTIME DESTINATION bin)
if(WIN32)
install(PROGRAMS ${CMAKE_SOURCE_DIR}/win32-setup/lokinet-bootstrap.exe DESTINATION bin)
# install(PROGRAMS ${CMAKE_SOURCE_DIR}/win32-setup/lokinet-bootstrap.exe DESTINATION bin)
else()
install(PROGRAMS ${CMAKE_SOURCE_DIR}/lokinet-bootstrap DESTINATION bin)
endif()

@ -6,11 +6,15 @@
#define LLARP_STRINGIFY2(val) #val
#define LLARP_STRINGIFY(val) LLARP_STRINGIFY2(val)
#define LLARP_VERSION_STR LLARP_STRINGIFY(LLARP_VERSION_MAJ) "." LLARP_STRINGIFY(LLARP_VERSION_MIN) "." LLARP_STRINGIFY(LLARP_VERSION_PATCH)
#define LLARP_VERSION_STR \
LLARP_STRINGIFY(LLARP_VERSION_MAJOR) \
"." LLARP_STRINGIFY(LLARP_VERSION_MINOR) "." LLARP_STRINGIFY( \
LLARP_VERSION_PATCH)
#define LLARP_VERSION_FULL LLARP_VERSION_STR "-@VERSIONTAG@"
namespace llarp
{
// clang-format off
const std::array<uint16_t, 3> VERSION{{LLARP_VERSION_MAJ, LLARP_VERSION_MIN, LLARP_VERSION_PATCH}};
const std::array<uint64_t, 4> ROUTER_VERSION{{LLARP_PROTO_VERSION, LLARP_VERSION_MAJ, LLARP_VERSION_MIN, LLARP_VERSION_PATCH}};
const char* const VERSION_STR = LLARP_VERSION_STR;
@ -19,4 +23,5 @@ namespace llarp
const char* const RELEASE_MOTTO = LLARP_RELEASE_MOTTO;
const char* const DEFAULT_NETID = LLARP_DEFAULT_NETID;
}
// clang-format on
} // namespace llarp

@ -18,12 +18,12 @@
#if defined(_WIN32) && defined(RC_INVOKED)
#define LLARP_VERSION \
LLARP_VERSION_MAJ, LLARP_VERSION_MIN, LLARP_VERSION_PATCH, 0
LLARP_VERSION_MAJOR, LLARP_VERSION_MINOR, LLARP_VERSION_PATCH, 0
#define MAKE_TRIPLET(X, Y, Z) TRIPLET_CAT(X, ., Y, ., Z)
#define TRIPLET_CAT(X, D1, Y, D2, Z) X##D1##Y##D2##Z
#define LLARP_VERSION_TRIPLET \
MAKE_TRIPLET(LLARP_VERSION_MAJ, LLARP_VERSION_MIN, LLARP_VERSION_PATCH)
MAKE_TRIPLET(LLARP_VERSION_MAJOR, LLARP_VERSION_MINOR, LLARP_VERSION_PATCH)
#endif

@ -119,25 +119,27 @@ install:
### Windows
build (where `$ARCH` is your platform - `i686` or `x86_64`):
windows builds are cross compiled from ubuntu linux
$ pacman -Sy base-devel mingw-w64-$ARCH-toolchain git libtool autoconf mingw-w64-$ARCH-cmake
$ git clone https://github.com/loki-project/loki-network.git
$ cd loki-network
$ mkdir -p build; cd build
$ cmake .. -DCMAKE_BUILD_TYPE=[Debug|Release] -DSTATIC_LINK_RUNTIME=ON -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -G 'Unix Makefiles'
install (elevated) to `$PROGRAMFILES/lokinet` or `$ProgramFiles(x86)/lokinet`:
$ make install
build requirements:
if cross-compiling, install mingw-w64 from your distro's package manager, or [build from source](https://sourceforge.net/p/mingw-w64/wiki2/Cross%20Win32%20and%20Win64%20compiler/), then:
* GNU Make
* CMake
* C++ 14 capable C++ compiler
* gcovr (if generating test coverage with gcc)
* libuv >= 1.27.0
* libsodium >= 1.0.17
* libcurl
* nsis
* cpack
$ mkdir -p build; cd build
$ export COMPILER=clang # if using clang for windows
$ cmake .. -DCMAKE_BUILD_TYPE=[Debug|Release] -DSTATIC_LINK_RUNTIME=ON -DCMAKE_CROSSCOMPILING=ON -DCMAKE_TOOLCHAIN_FILE=../contrib/cross/mingw[32].cmake
setup:
$ sudo apt install build-essential cmake git pkg-config mingw-w64 nsis
building:
this will create a static binary that can be installed anywhere, with no other dependency other than libc (minimum v6.1)
$ make windows-release DOWNLOAD_SODIUM=ON STATIC_LINK=ON
### Solaris 2.10+

Loading…
Cancel
Save