|
|
|
@ -6,7 +6,7 @@ project(${PROJECT_NAME} C CXX ASM)
|
|
|
|
|
|
|
|
|
|
option(USE_LIBABYSS "enable libabyss" )
|
|
|
|
|
option(USE_AVX2 "enable avx2 code" )
|
|
|
|
|
option(USE_NETNS "enable networking namespace support" )
|
|
|
|
|
option(USE_NETNS "enable networking namespace support. Linux only" )
|
|
|
|
|
option(AMD_RYZEN_HACK "hack for AMD Ryzen FPU bug (support FMA3 and FMA4 in FPU, but does not show in CPUID)" )
|
|
|
|
|
option(STATIC_LINK "emit fully linked binaries" )
|
|
|
|
|
option(NON_PC_TARGET "non-pc target build: iphone, andriod, embedded non-i386 SBC, etc" )
|
|
|
|
@ -29,7 +29,7 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
|
set(CMAKE_CXX_EXTENSIONS OFF)
|
|
|
|
|
|
|
|
|
|
if (NOT ${CMAKE_SYSTEM_NAME} MATCHES "Linux" AND SHADOW)
|
|
|
|
|
message( FATAL_ERROR "Shared library target is Linux only" )
|
|
|
|
|
message( FATAL_ERROR "shadow-framework is Linux only (or anything that has epoll(5). Check your Oracle manuals for information.)" )
|
|
|
|
|
endif(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Linux" AND SHADOW)
|
|
|
|
|
|
|
|
|
|
if (STATIC_LINK AND SHADOW)
|
|
|
|
@ -46,13 +46,8 @@ add_compile_options($<$<COMPILE_LANGUAGE:CXX>:-fpermissive>)
|
|
|
|
|
add_compile_options(-Wno-unused-function -Wno-deprecated-declarations -Wno-unknown-pragmas)
|
|
|
|
|
|
|
|
|
|
if (WITH_COVERAGE)
|
|
|
|
|
if (USING_CLANG)
|
|
|
|
|
add_compile_options( -fprofile-instr-generate -fcoverage-mapping )
|
|
|
|
|
link_libraries( -fprofile-instr-generate )
|
|
|
|
|
else()
|
|
|
|
|
add_compile_options( --coverage -g0 )
|
|
|
|
|
link_libraries( --coverage )
|
|
|
|
|
endif()
|
|
|
|
|
add_compile_options( --coverage -g0 )
|
|
|
|
|
link_libraries( --coverage )
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
# these vars are set by the cmake toolchain spec
|
|
|
|
@ -180,9 +175,9 @@ endif(NOT GIT_VERSION)
|
|
|
|
|
|
|
|
|
|
if(RELEASE_MOTTO)
|
|
|
|
|
add_definitions(-DLLARP_RELEASE_MOTTO="${RELEASE_MOTTO}")
|
|
|
|
|
if(WIN32)
|
|
|
|
|
add_definitions(-DRELEASE_MOTTO=${RELEASE_MOTTO})
|
|
|
|
|
endif(WIN32)
|
|
|
|
|
if(WIN32)
|
|
|
|
|
add_definitions(-DRELEASE_MOTTO=${RELEASE_MOTTO})
|
|
|
|
|
endif(WIN32)
|
|
|
|
|
endif(RELEASE_MOTTO)
|
|
|
|
|
|
|
|
|
|
set(EXE lokinet)
|
|
|
|
@ -697,13 +692,13 @@ else()
|
|
|
|
|
#add_executable(${CLIENT_EXE} ${CLIENT_SRC})
|
|
|
|
|
#add_executable(${DNS_EXE} ${DNS_SRC})
|
|
|
|
|
add_subdirectory(${GTEST_DIR})
|
|
|
|
|
if(NOT WIN32)
|
|
|
|
|
add_executable(${TEST_EXE} ${TEST_SRC})
|
|
|
|
|
add_executable(${EXE} ${EXE_SRC})
|
|
|
|
|
else()
|
|
|
|
|
add_executable(${TEST_EXE} ${TEST_SRC} llarp/constants/version.rc)
|
|
|
|
|
add_executable(${EXE} ${EXE_SRC} llarp/constants/version.rc)
|
|
|
|
|
endif(NOT WIN32)
|
|
|
|
|
if(NOT WIN32)
|
|
|
|
|
add_executable(${TEST_EXE} ${TEST_SRC})
|
|
|
|
|
add_executable(${EXE} ${EXE_SRC})
|
|
|
|
|
else()
|
|
|
|
|
add_executable(${TEST_EXE} ${TEST_SRC} llarp/constants/version.rc)
|
|
|
|
|
add_executable(${EXE} ${EXE_SRC} llarp/constants/version.rc)
|
|
|
|
|
endif(NOT WIN32)
|
|
|
|
|
|
|
|
|
|
target_include_directories(${TEST_EXE} PRIVATE test)
|
|
|
|
|
target_include_directories(${TEST_EXE} PRIVATE ${GTEST_DIR}/include ${GTEST_DIR})
|
|
|
|
@ -714,6 +709,7 @@ endif(NOT WIN32)
|
|
|
|
|
else()
|
|
|
|
|
install(PROGRAMS ${CMAKE_SOURCE_DIR}/lokinet-bootstrap DESTINATION bin)
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
|
|
|
|
install(CODE "execute_process(COMMAND setcap cap_net_admin,cap_net_bind_service=+eip ${CMAKE_INSTALL_PREFIX}/bin/lokinet)")
|
|
|
|
|
endif(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
|
|
|
@ -721,11 +717,13 @@ endif(NOT WIN32)
|
|
|
|
|
add_library(${STATIC_LIB} STATIC ${LIB_SRC})
|
|
|
|
|
add_library(${UTIL_LIB} STATIC ${LIB_UTIL_SRC})
|
|
|
|
|
add_library(${PLATFORM_LIB} STATIC ${LIB_PLATFORM_SRC})
|
|
|
|
|
|
|
|
|
|
if(USE_LIBABYSS)
|
|
|
|
|
target_link_libraries(${PLATFORM_LIB} ${UTIL_LIB} Threads::Threads ${ABYSS_LIB})
|
|
|
|
|
else()
|
|
|
|
|
target_link_libraries(${PLATFORM_LIB} ${UTIL_LIB} Threads::Threads)
|
|
|
|
|
endif(USE_LIBABYSS)
|
|
|
|
|
|
|
|
|
|
if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
|
|
|
|
if(NON_PC_TARGET)
|
|
|
|
|
target_link_libraries(${PLATFORM_LIB} -lrt)
|
|
|
|
@ -733,9 +731,11 @@ endif(NOT WIN32)
|
|
|
|
|
target_link_libraries(${PLATFORM_LIB} -lcap)
|
|
|
|
|
endif(NON_PC_TARGET)
|
|
|
|
|
endif(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
|
|
|
|
|
|
|
|
|
target_link_libraries(${STATIC_LIB} ${CRYPTOGRAPHY_LIB} ${LIBS} ${UTIL_LIB} ${PLATFORM_LIB})
|
|
|
|
|
target_link_libraries(${EXE} ${STATIC_LINK_LIBS} ${STATIC_LIB} ${UTIL_LIB} ${PLATFORM_LIB})
|
|
|
|
|
target_link_libraries(${TEST_EXE} ${STATIC_LINK_LIBS} gtest_main ${STATIC_LIB} ${UTIL_LIB} ${PLATFORM_LIB})
|
|
|
|
|
|
|
|
|
|
if (WIN32)
|
|
|
|
|
target_link_libraries(${EXE} ${STATIC_LINK_LIBS} ${STATIC_LIB} ${UTIL_LIB} ${PLATFORM_LIB} ws2_32 iphlpapi)
|
|
|
|
|
target_link_libraries(${TEST_EXE} ${STATIC_LINK_LIBS} gtest_main ${STATIC_LIB} ${UTIL_LIB} ${PLATFORM_LIB} ws2_32 iphlpapi)
|
|
|
|
@ -751,4 +751,4 @@ endif(NOT WIN32)
|
|
|
|
|
add_library(${SHARED_LIB} SHARED ${LIB_SRC})
|
|
|
|
|
target_link_libraries(${SHARED_LIB} ${CRYPTOGRAPHY_LIB} ${LIBS} ${UTIL_LIB} ${PLATFORM_LIB} Threads::Threads)
|
|
|
|
|
endif(WITH_SHARED)
|
|
|
|
|
endif(SHADOW)
|
|
|
|
|
endif(SHADOW)
|