@ -8,7 +8,7 @@ add_library(lokinet-util
u t i l / f s . c p p
u t i l / j s o n . c p p
u t i l / l o g g i n g / b u f f e r . c p p
u t i l / lo k i n e t _ i n i t . c
u t i l / ea s t e r _ e g g s . c p p
u t i l / m e m . c p p
u t i l / s t r . c p p
u t i l / t h r e a d / q u e u e _ m a n a g e r . c p p
@ -32,12 +32,11 @@ add_library(lokinet-platform
S T A T I C
# f o r n e t w o r k i n g
e v / e v . c p p
e v / ev _ li b u v . c p p
e v / li b u v . c p p
n e t / i p . c p p
n e t / i p _ a d d r e s s . c p p
n e t / i p _ p a c k e t . c p p
n e t / i p _ r a n g e . c p p
n e t / n e t . c p p
n e t / n e t _ i n t . c p p
n e t / s o c k _ a d d r . c p p
v p n / p a c k e t _ r o u t e r . c p p
@ -58,34 +57,66 @@ endif()
if ( WIN32 )
target_sources ( lokinet-platform PRIVATE
w i n 3 2 / w i n 3 2 _ i n e t . c
w i n 3 2 / w i n 3 2 _ i n t r n l . c )
target_link_libraries ( lokinet-platform PUBLIC iphlpapi )
n e t / w i n 3 2 . c p p
w i n 3 2 / e x e c . c p p )
add_library ( lokinet-win32 STATIC
w i n 3 2 / d l l . c p p
w i n 3 2 / e x c e p t i o n . c p p )
add_library ( lokinet-wintun STATIC
w i n 3 2 / w i n t u n . c p p )
add_library ( lokinet-windivert STATIC
w i n 3 2 / w i n d i v e r t . c p p )
# w i n t u n a n d w i n d i v e r t a r e p r i v a t e d l i n k e d b y l o k i n e t - p l a t f o r m
# t h i s i s s o t h e i r d e t a i l s d o n o t l e a k o u t t o d e p s o f l o k i n e t - p l a t f o r m
# w i n t u n a n d w i n d i v e r t s t i l l n e e d t h i n g s f r o m l o k i n e t - p l a t f o r m
target_compile_options ( lokinet-wintun PUBLIC -I ${ CMAKE_BINARY_DIR } /wintun/include/ )
target_compile_options ( lokinet-windivert PUBLIC -I ${ CMAKE_BINARY_DIR } /WinDivert- ${ WINDIVERT_VERSION } /include/ )
target_include_directories ( lokinet-windivert PUBLIC ${ PROJECT_SOURCE_DIR } )
target_link_libraries ( lokinet-wintun PUBLIC lokinet-platform lokinet-util lokinet-config )
target_link_libraries ( lokinet-win32 PUBLIC lokinet-util )
target_link_libraries ( lokinet-windivert PUBLIC oxen-logging )
target_link_libraries ( lokinet-windivert PRIVATE lokinet-win32 )
target_link_libraries ( lokinet-platform PRIVATE lokinet-win32 lokinet-wintun lokinet-windivert )
else ( )
target_sources ( lokinet-platform PRIVATE
n e t / p o s i x . c p p )
endif ( )
if ( CMAKE_SYSTEM_NAME MATCHES "FreeBSD" )
target_include_directories ( lokinet-platform SYSTEM PUBLIC /usr/local/include )
endif ( )
add_library ( liblokinet
add_library ( l okinet-dns
S T A T I C
c o n f i g / c o n f i g . c p p
c o n f i g / d e f i n i t i o n . c p p
c o n f i g / i n i . c p p
c o n f i g / k e y _ m a n a g e r . c p p
d n s / m e s s a g e . c p p
d n s / n a m e . c p p
d n s / m u l t i _ p l a t f o r m . c p p
d n s / n m _ p l a t f o r m . c p p
d n s / s d _ p l a t f o r m . c p p
d n s / p l a t f o r m . c p p
d n s / q u e s t i o n . c p p
d n s / r r . c p p
d n s / s e r i a l i z e . c p p
d n s / s e r v e r . c p p
d n s / s r v _ d a t a . c p p
d n s / s r v _ d a t a . c p p )
if ( WITH_SYSTEMD )
target_sources ( lokinet-dns PRIVATE dns/nm_platform.cpp dns/sd_platform.cpp )
endif ( )
target_link_libraries ( lokinet-dns PUBLIC lokinet-platform uvw )
target_link_libraries ( lokinet-dns PRIVATE libunbound lokinet-config )
add_library ( lokinet-config
S T A T I C
c o n f i g / c o n f i g . c p p
c o n f i g / d e f i n i t i o n . c p p
c o n f i g / i n i . c p p
c o n f i g / k e y _ m a n a g e r . c p p )
target_link_libraries ( lokinet-config PUBLIC lokinet-dns lokinet-platform oxenmq::oxenmq )
add_library ( lokinet-amalgum
S T A T I C
c o n s e n s u s / t a b l e . c p p
c o n s e n s u s / r e a c h a b i l i t y _ t e s t i n g . c p p
@ -115,7 +146,7 @@ add_library(liblokinet
d h t / t a g l o o k u p . c p p
e n d p o i n t _ b a s e . c p p
e x i t / c o n t e x t . c p p
e x i t / e n d p o i n t . c p p
e x i t / e x i t _ m e s s a g e s . c p p
@ -170,7 +201,7 @@ add_library(liblokinet
r o u t e r / r c _ g o s s i p e r . c p p
r o u t e r / r o u t e r . c p p
r o u t e r / r o u t e _ p o k e r . c p p
r o u t i n g / d h t _ m e s s a g e . c p p
r o u t i n g / m e s s a g e _ p a r s e r . c p p
r o u t i n g / p a t h _ c o n f i r m _ m e s s a g e . c p p
@ -204,42 +235,42 @@ add_library(liblokinet
s e r v i c e / t a g . c p p
)
if ( WITH_PEERSTATS_BACKEND )
target_compile_definitions ( liblokinet PRIVATE -DLOKINET_PEERSTATS_BACKEND )
target_link_libraries ( liblokinet PUBLIC sqlite_orm )
endif ( )
set_target_properties ( liblokinet PROPERTIES OUTPUT_NAME lokinet )
enable_lto ( lokinet-util lokinet-platform liblokinet )
if ( TRACY_ROOT )
target_sources ( liblokinet PRIVATE ${ TRACY_ROOT } /TracyClient.cpp )
if ( WITH_PEERSTATS_BACKEND )
target_compile_definitions ( lokinet-amalgum PRIVATE -DLOKINET_PEERSTATS_BACKEND )
target_link_libraries ( lokinet-amalgum PUBLIC sqlite_orm )
endif ( )
if ( WITH_HIVE )
target_sources ( l ibl okinet PRIVATE
target_sources ( l okinet-amalgum PRIVATE
t o o l i n g / r o u t e r _ h i v e . c p p
t o o l i n g / h i v e _ r o u t e r . c p p
t o o l i n g / h i v e _ c o n t e x t . c p p
)
endif ( )
target_link_libraries ( liblokinet PUBLIC
# T O D O : m a k e l i b u n b o u n d h i d d e n b e h i n d a f e a t u r e f l a g l i k e s q l i t e f o r e m b e d d e d l o k i n e t
target_link_libraries ( lokinet-amalgum PRIVATE libunbound )
target_link_libraries ( lokinet-amalgum PUBLIC
c x x o p t s
o x e n c : : o x e n c
l o k i n e t - p l a t f o r m
l o k i n e t - c o n f i g
l o k i n e t - d n s
l o k i n e t - u t i l
l o k i n e t - c r y p t o g r a p h y
n g t c p 2 _ s t a t i c
o x e n m q : : o x e n m q )
target_link_libraries ( liblokinet PRIVATE libunbound )
enable_lto ( lokinet-util lokinet-platform lokinet-dns lokinet-config lokinet-amalgum )
pkg_check_modules ( CRYPT libcrypt IMPORTED_TARGET )
if ( CRYPT_FOUND AND NOT CMAKE_CROSSCOMPILING )
add_definitions ( -DHAVE_CRYPT )
add_library ( libcrypt INTERFACE )
target_link_libraries ( libcrypt INTERFACE PkgConfig::CRYPT )
target_link_libraries ( l ibl okinet PRIVATE libcrypt )
target_link_libraries ( l okinet-amalgum PRIVATE libcrypt )
message ( STATUS "using libcrypt ${CRYPT_VERSION}" )
endif ( )
@ -247,7 +278,7 @@ endif()
if ( BUILD_LIBLOKINET )
include ( GNUInstallDirs )
add_library ( lokinet-shared SHARED lokinet_shared.cpp )
target_link_libraries ( lokinet-shared PUBLIC l ibl okinet)
target_link_libraries ( lokinet-shared PUBLIC l okinet-amalgum )
if ( WIN32 )
set ( CMAKE_SHARED_LIBRARY_PREFIX_CXX "" )
endif ( )