mirror of
https://github.com/oxen-io/lokinet.git
synced 2024-11-15 12:13:24 +00:00
871c3e3281
* wintun vpn platform for windows * bundle config snippets into nsis installer for exit node, keyfile persisting, reduced hops mode. * use wintun for vpn platform * isolate all windows platform specific code into their own compilation units and libraries * split up internal libraries into more specific components * rename liblokinet.a target to liblokinet-amalgum.a to elimiate ambiguity with liblokinet.so * DNS platform for win32 * rename llarp/ev/ev_libuv.{c,h}pp to llarp/ev/libuv.{c,h}pp as the old name was idiotic * split up net platform into win32 and posix specific compilation units * rename lokinet_init.c to easter_eggs.cpp as that is what they are for and it does not need to be a c compilation target * add cmake option STRIP_SYMBOLS for seperating out debug symbols for windows builds * intercept dns traffic on all interfaces on windows using windivert and feed it into lokinet
101 lines
1.9 KiB
C++
101 lines
1.9 KiB
C++
#pragma once
|
|
|
|
/// namespace for platform feature detection constexprs
|
|
namespace llarp::platform
|
|
{
|
|
/// are we linux ?
|
|
inline constexpr bool is_linux =
|
|
#ifdef __linux__
|
|
true
|
|
#else
|
|
false
|
|
#endif
|
|
;
|
|
|
|
/// building with systemd enabled ?
|
|
inline constexpr bool with_systemd =
|
|
#ifdef WITH_SYSTEMD
|
|
true
|
|
#else
|
|
false
|
|
#endif
|
|
;
|
|
|
|
/// are we freebsd ?
|
|
inline constexpr bool is_freebsd =
|
|
#ifdef __FreeBSD__
|
|
true
|
|
#else
|
|
false
|
|
#endif
|
|
;
|
|
|
|
/// are we windows ?
|
|
inline constexpr bool is_windows =
|
|
#ifdef _WIN32
|
|
true
|
|
#else
|
|
false
|
|
#endif
|
|
;
|
|
|
|
/// are we an apple platform ?
|
|
inline constexpr bool is_apple =
|
|
#ifdef __APPLE__
|
|
true
|
|
#else
|
|
false
|
|
#endif
|
|
;
|
|
|
|
/// are we building as an apple system extension
|
|
inline constexpr bool is_apple_sysex =
|
|
#ifdef MACOS_SYSTEM_EXTENSION
|
|
true
|
|
#else
|
|
false
|
|
#endif
|
|
;
|
|
|
|
/// are we an android platform ?
|
|
inline constexpr bool is_android =
|
|
#ifdef ANDROID
|
|
true
|
|
#else
|
|
false
|
|
#endif
|
|
;
|
|
|
|
/// are we an iphone ?
|
|
inline constexpr bool is_iphone =
|
|
#ifdef IOS
|
|
true
|
|
#else
|
|
false
|
|
#endif
|
|
;
|
|
|
|
/// are we running with pybind simulation mode enabled?
|
|
inline constexpr bool is_simulation =
|
|
#ifdef LOKINET_HIVE
|
|
true
|
|
#else
|
|
false
|
|
#endif
|
|
;
|
|
/// do we have systemd support ?
|
|
// on cross compiles sometimes weird permutations of target and host make this value not correct,
|
|
// this ensures it always is
|
|
inline constexpr bool has_systemd = is_linux and with_systemd and not(is_android or is_windows);
|
|
|
|
/// are we using macos ?
|
|
inline constexpr bool is_macos = is_apple and not is_iphone;
|
|
|
|
/// are we a mobile phone ?
|
|
inline constexpr bool is_mobile = is_android or is_iphone;
|
|
|
|
/// does this platform support native ipv6 ?
|
|
// TODO: make windows support ipv6
|
|
inline constexpr bool supports_ipv6 = not is_windows;
|
|
} // namespace llarp::platform
|