mirror of
https://github.com/oxen-io/lokinet.git
synced 2024-10-29 11:05:43 +00:00
3.0 KiB
3.0 KiB
Building on Linux
# or your OS or distro's package manager
$ sudo apt install build-essential libtool autoconf cmake git
$ git clone --recursive https://github.com/loki-project/lokinet-builder
$ cd lokinet-builder
$ make
Building on Windows (mingw-w64 native, or wow64/linux/unix cross-compiler)
#i686 or x86_64
#if cross-compiling from anywhere other than wow64, export CC and CXX to
#$ARCH-w64-mingw32-g[cc++] respectively
$ pacman -Sy base-devel mingw-w64-$ARCH-toolchain git libtool autoconf cmake
$ git clone --recursive https://github.com/loki-project/lokinet-builder
$ cd lokinet-builder
$ make ensure sodium
$ cd build
$ cmake ../deps/llarp -DSODIUM_LIBRARIES=./prefix/lib/libsodium.a -DSODIUM_INCLUDE_DIR=./prefix/include -G "Unix Makefiles" -DHAVE_CXX17_FILESYSTEM=ON
$ make
$ cp llarpd ../lokinet.exe
Building on Windows using Microsoft C/C++ (Visual Studio 2017)
- clone https://github.com/loki-project/lokinet-builder from git-bash or whatever git browser you use
- open
%CLONE_PATH%/lokinet-builder/deps/sodium/builds/msvc/vs2017/libsodium.sln
and build one of the targets - create a
build
folder in%CLONE_PATH%/lokinet-builder
- run cmake-gui from
%CLONE_PATH%/lokinet-builder/deps/llarp
as the source directory- define
SODIUM_LIB
to%CLONE_PATH%/lokinet-builder/deps/sodium/bin/win32/%CONFIG%/%TOOLSET%/%TARGET%/libsodium.lib
- define
SODIUM_INCLUDE_DIR
to%CLONE_PATH%/lokinet-builder/deps/sodium/src/libsodium/include
- define
HAVE_CXX17_FILESYSTEM
toTRUE
- select
Visual Studio 2017 15 %ARCH%
as the generator - enter a custom toolset if desired (usually
v141_xp
)
- define
- generate the developer studio project files and open in the IDE
- select a configuration
- press F7 to build everything
Running
$ ./lokinet
or press Debug
/Local Windows Debugger
in the visual studio standard toolbar
Development
Please note development builds are likely to be unstable.
Build requirements:
- CMake
- ninja (for unit testing with Google Tests)
- libsodium >= 1.0.14 (included here)
- c++ 11 capable C++ compiler
- if you have C++17
<filesystem>
or<experimental/filesystem>
declared and defined in your platform's C++ toolchain, re-run CMake (inlokinet-builder/build
) with-DHAVE_CXX17_FILESYSTEM=ON
. - since each platform seems to have its own idea of where
std::[experimental::]filesystem
is defined, you will need to manually specify its library inLDFLAGS
orCMAKE_x_LINKER_FLAGS
as well.
Windows:
- Mingw-w64 is recommended for 32 or 64-bit builds.
- It is possible to compile with Microsoft C++ (v19 or later from VS2015+).
cpp17::filesystem
invendor/cppbackport-master
is not available for Windows.
Boxed warning
Inbound sessions are unsupported on Windows Server systems.
Ignore this warning at your own peril.
Building a debug build:
#in lokinet-builder/
$ cd build
$ make