@ -1,18 +1,28 @@
add_executable ( lokinet main.cpp )
add_executable ( lokinet-vpn lokinet-vpn.cpp )
enable_lto ( lokinet lokinet-vpn )
if ( SHADOW )
add_shadow_plugin ( shadow-plugin main.cpp ${ TRACY_ROOT } /TracyClient.cpp )
target_link_libraries ( shadow-plugin liblokinet )
enable_lto ( shadow-plugin )
else ( )
add_executable ( lokinet main.cpp )
add_executable ( lokinet-vpn lokinet-vpn.cpp )
enable_lto ( lokinet lokinet-vpn )
if ( TRACY_ROOT )
if ( TRACY_ROOT )
target_sources ( lokinet PRIVATE ${ TRACY_ROOT } /TracyClient.cpp )
endif ( )
set ( should_install ON )
set ( SETCAP )
if ( CMAKE_SYSTEM_NAME MATCHES "Linux" )
option ( WITH_SETCAP "use setcap when installing" ON )
if ( WITH_SETCAP )
find_program ( SETCAP NAMES setcap HINTS /sbin /usr/sbin )
if ( SETCAP )
message ( STATUS "Found setcap binary: ${SETCAP}" )
else ( )
message ( WARNING "cannot find setcap binary you will not be able use the install targets unless you use -DWITH_SETCAP=OFF" )
set ( should_install OFF )
endif ( )
endif ( )
endif ( )
foreach ( exe lokinet lokinet-vpn )
foreach ( exe lokinet lokinet-vpn )
if ( WIN32 AND NOT MSVC_VERSION )
target_sources ( ${ exe } PRIVATE ../llarp/win32/version.rc )
target_link_libraries ( ${ exe } PRIVATE ws2_32 iphlpapi )
@ -25,22 +35,17 @@ else()
endif ( )
target_compile_definitions ( ${ exe } PRIVATE -DVERSIONTAG= ${ GIT_VERSION_REAL } )
add_log_tag ( ${ exe } )
if ( should_install )
install ( TARGETS ${ exe } RUNTIME DESTINATION bin COMPONENT lokinet )
endforeach ( )
if ( WIN32 )
install ( PROGRAMS ${ CMAKE_SOURCE_DIR } /lokinet-bootstrap.ps1 DESTINATION bin COMPONENT lokinet )
else ( )
install ( PROGRAMS ${ CMAKE_SOURCE_DIR } /lokinet-bootstrap DESTINATION bin COMPONENT lokinet )
endif ( )
endforeach ( )
if ( CMAKE_SYSTEM_NAME MATCHES "Linux" )
option ( WITH_SETCAP "Enables setcap'ing the lokinet binary with the required capabilities during installation (requires root)" ON )
if ( WITH_SETCAP )
find_program ( setcap_bin NAMES setcap HINTS /sbin /usr/sbin REQUIRED )
message ( STATUS "found setcap: ${setcap_bin}" )
install ( CODE "execute_process(COMMAND ${setcap_bin} cap_net_admin,cap_net_bind_service=+eip ${CMAKE_INSTALL_PREFIX}/bin/lokinet)" )
endif ( )
endif ( )
if ( SETCAP )
install ( CODE "execute_process(COMMAND ${SETCAP} cap_net_admin,cap_net_bind_service=+eip ${CMAKE_INSTALL_PREFIX}/bin/lokinet)" )
endif ( )
if ( NOT WIN32 )
if ( should_install )
install ( PROGRAMS ${ CMAKE_SOURCE_DIR } /lokinet-bootstrap DESTINATION bin COMPONENT lokinet )
endif ( )
endif ( )