|
|
|
@ -13,7 +13,7 @@ endmacro(add_cxxflags)
|
|
|
|
|
|
|
|
|
|
include(CheckCXXCompilerFlag)
|
|
|
|
|
CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
|
|
|
|
|
if (WIN32 AND NOT MINGW)
|
|
|
|
|
if (MSVC)
|
|
|
|
|
CHECK_CXX_COMPILER_FLAG("/std:c++17" COMPILER_SUPPORTS_CXX17)
|
|
|
|
|
else()
|
|
|
|
|
CHECK_CXX_COMPILER_FLAG("-std=c++17" COMPILER_SUPPORTS_CXX17)
|
|
|
|
@ -24,7 +24,7 @@ option(HAVE_CXX17_FILESYSTEM "Disable if your C++ compiler and runtime library l
|
|
|
|
|
if(COMPILER_SUPPORTS_CXX11 AND NOT HAVE_CXX17_FILESYSTEM)
|
|
|
|
|
add_cxxflags("-std=c++11")
|
|
|
|
|
elseif(COMPILER_SUPPORTS_CXX17 AND HAVE_CXX17_FILESYSTEM)
|
|
|
|
|
if (WIN32 AND NOT MINGW)
|
|
|
|
|
if (MSVC)
|
|
|
|
|
add_cxxflags("/std:c++17")
|
|
|
|
|
else()
|
|
|
|
|
add_cxxflags("-std=c++17")
|
|
|
|
@ -43,12 +43,21 @@ endif()
|
|
|
|
|
if(ANDROID)
|
|
|
|
|
set(THREAD_LIB "-pthread")
|
|
|
|
|
# finally removed pthread dependency for MSC++
|
|
|
|
|
elseif(WIN32 AND NOT MINGW)
|
|
|
|
|
elseif(MSVC)
|
|
|
|
|
set(THREAD_LIB)
|
|
|
|
|
else()
|
|
|
|
|
set(THREAD_LIB pthread)
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
else()
|
|
|
|
|
option (BUILD_AVX2 "Enable AVX2 FPU vector instructions." OFF)
|
|
|
|
|
if (BUILD_AVX2)
|
|
|
|
|
add_cflags("/arch:AVX2")
|
|
|
|
|
add_cxxflags("/arch:AVX2")
|
|
|
|
|
else()
|
|
|
|
|
add_cflags("/arch:SSE2")
|
|
|
|
|
add_cxxflags("/arch:SSE2")
|
|
|
|
|
endif(BUILD_AVX2)
|
|
|
|
|
|
|
|
|
|
if(STATIC_LINK)
|
|
|
|
|
add_cflags("-static -Wl,--whole-archive -lpthread -Wl,--no-whole-archive")
|
|
|
|
@ -61,12 +70,12 @@ else()
|
|
|
|
|
set(WITH_STATIC ON)
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
if (UNIX OR MINGW OR APPLE)
|
|
|
|
|
if (NOT MSVC)
|
|
|
|
|
add_cflags("-Wall")
|
|
|
|
|
add_cxxflags("-Wall")
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
if (WIN32 AND NOT MINGW)
|
|
|
|
|
if (MSVC)
|
|
|
|
|
set(OPTIMIZE_FLAGS "-Od")
|
|
|
|
|
set(DEBUG_FLAGS "-ZI")
|
|
|
|
|
else()
|
|
|
|
@ -98,7 +107,7 @@ if(SHADOW)
|
|
|
|
|
include_directories(${SHADOW_ROOT}/include)
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
if (WIN32 AND NOT MINGW)
|
|
|
|
|
if (MSVC)
|
|
|
|
|
add_cflags("-wd4996 -wd4244 -MP ${OPTIMIZE_FLAGS}")
|
|
|
|
|
add_cxxflags("-wd4996 -wd4244 -MP ${OPTIMIZE_FLAGS}")
|
|
|
|
|
else()
|
|
|
|
@ -182,7 +191,7 @@ if(UNIX)
|
|
|
|
|
else()
|
|
|
|
|
message(FATAL_ERROR "Your operating system is not supported yet")
|
|
|
|
|
endif()
|
|
|
|
|
elseif(WIN32 OR MINGW)
|
|
|
|
|
elseif(WIN32)
|
|
|
|
|
set(LIBTUNTAP_IMPL ${TT_ROOT}/tuntap-windows.c)
|
|
|
|
|
add_definitions(-DWIN32_LEAN_AND_MEAN)
|
|
|
|
|
add_definitions(-DWIN32)
|
|
|
|
@ -196,7 +205,7 @@ set(LIBTUNTAP_SRC_BASE
|
|
|
|
|
${TT_ROOT}/tuntap_log.cpp
|
|
|
|
|
${LIBTUNTAP_IMPL})
|
|
|
|
|
if (UNIX)
|
|
|
|
|
set(LIBTUNTAP_SRC
|
|
|
|
|
set(LIBTUNTAP_SRC
|
|
|
|
|
${TT_ROOT}/tuntap-unix.c
|
|
|
|
|
${LIBTUNTAP_SRC_BASE})
|
|
|
|
|
endif()
|
|
|
|
@ -257,7 +266,7 @@ set(LIB_PLATFORM_SRC
|
|
|
|
|
${ANDROID_PLATFORM_SRC}
|
|
|
|
|
# process isolation implementation
|
|
|
|
|
${ISOLATE_PROC_SRC}
|
|
|
|
|
# tun
|
|
|
|
|
# tun
|
|
|
|
|
${LIBTUNTAP_SRC}
|
|
|
|
|
# win32 inline procs
|
|
|
|
|
llarp/win32_inet.c
|
|
|
|
@ -440,7 +449,7 @@ include_directories(include)
|
|
|
|
|
include_directories(vendor/cppbackport-master/lib)
|
|
|
|
|
include_directories(${sodium_INCLUDE_DIR})
|
|
|
|
|
|
|
|
|
|
if (WIN32 AND NOT MINGW)
|
|
|
|
|
if (MSVC)
|
|
|
|
|
include_directories(contrib/msc/include)
|
|
|
|
|
link_directories(contrib/msc/lib)
|
|
|
|
|
endif()
|
|
|
|
@ -450,23 +459,28 @@ set(DNS_EXE dns)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(SHADOW)
|
|
|
|
|
add_shadow_plugin(shadow-plugin-${SHARED_LIB} ${EXE_SRC} ${LIB_SRC} ${LIB_PLATFORM_SRC} ${CPP_BACKPORT_SRC})
|
|
|
|
|
target_link_libraries(shadow-plugin-${SHARED_LIB} ${LIBS})
|
|
|
|
|
install(TARGETS shadow-plugin-${SHARED_LIB} DESTINATION plugins)
|
|
|
|
|
add_shadow_plugin(shadow-plugin-${SHARED_LIB} ${EXE_SRC} ${LIB_SRC} ${LIB_PLATFORM_SRC} ${CPP_BACKPORT_SRC})
|
|
|
|
|
target_link_libraries(shadow-plugin-${SHARED_LIB} ${LIBS})
|
|
|
|
|
install(TARGETS shadow-plugin-${SHARED_LIB} DESTINATION plugins)
|
|
|
|
|
else()
|
|
|
|
|
add_executable(${RC_EXE} ${RC_SRC})
|
|
|
|
|
add_executable(${EXE} ${EXE_SRC})
|
|
|
|
|
add_executable(${CLIENT_EXE} ${CLIENT_SRC})
|
|
|
|
|
add_executable(${EXE} ${EXE_SRC})
|
|
|
|
|
add_executable(${CLIENT_EXE} ${CLIENT_SRC})
|
|
|
|
|
add_executable(${DNS_EXE} ${DNS_SRC})
|
|
|
|
|
add_subdirectory(${GTEST_DIR})
|
|
|
|
|
include_directories(${GTEST_DIR}/include ${GTEST_DIR})
|
|
|
|
|
add_executable(${TEST_EXE} ${TEST_SRC})
|
|
|
|
|
|
|
|
|
|
if (WIN32)
|
|
|
|
|
target_link_libraries(${TEST_EXE} ${STATIC_LINK_LIBS} gtest_main ${STATIC_LIB} ws2_32 iphlpapi)
|
|
|
|
|
if (MINGW)
|
|
|
|
|
target_link_libraries(${TEST_EXE} ${STATIC_LINK_LIBS} gtest_main ${STATIC_LIB} ws2_32 stdc++fs iphlpapi)
|
|
|
|
|
endif()
|
|
|
|
|
else()
|
|
|
|
|
target_link_libraries(${TEST_EXE} ${STATIC_LINK_LIBS} gtest_main ${STATIC_LIB})
|
|
|
|
|
endif(WIN32)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(NOT WIN32)
|
|
|
|
|
add_subdirectory(${GTEST_DIR})
|
|
|
|
|
include_directories(${GTEST_DIR}/include ${GTEST_DIR})
|
|
|
|
|
add_executable(${TEST_EXE} ${TEST_SRC})
|
|
|
|
|
target_link_libraries(${TEST_EXE} ${STATIC_LINK_LIBS} gtest_main ${STATIC_LIB})
|
|
|
|
|
endif()
|
|
|
|
|
if(WITH_STATIC)
|
|
|
|
|
if(WITH_STATIC)
|
|
|
|
|
add_library(${STATIC_LIB} STATIC ${LIB_SRC})
|
|
|
|
|
if(NOT HAVE_CXX17_FILESYSTEM)
|
|
|
|
|
add_library(${BACKPORT_LIB} STATIC ${CPP_BACKPORT_SRC})
|
|
|
|
@ -490,7 +504,7 @@ else()
|
|
|
|
|
target_link_libraries(${EXE} ${STATIC_LINK_LIBS} ${STATIC_LIB} ${BACKPORT_LIB} ${PLATFORM_LIB} ws2_32 stdc++fs iphlpapi)
|
|
|
|
|
target_link_libraries(${CLIENT_EXE} ${STATIC_LINK_LIBS} ${STATIC_LIB} ${BACKPORT_LIB} ${PLATFORM_LIB} ws2_32 stdc++fs iphlpapi)
|
|
|
|
|
target_link_libraries(${RC_EXE} ${STATIC_LINK_LIBS} ${STATIC_LIB} ${BACKPORT_LIB} ${PLATFORM_LIB} ws2_32 stdc++fs iphlpapi)
|
|
|
|
|
elseif(WIN32)
|
|
|
|
|
elseif(MSVC)
|
|
|
|
|
target_link_libraries(${EXE} ${STATIC_LINK_LIBS} ${STATIC_LIB} ${BACKPORT_LIB} ${PLATFORM_LIB} ws2_32 iphlpapi)
|
|
|
|
|
target_link_libraries(${CLIENT_EXE} ${STATIC_LINK_LIBS} ${STATIC_LIB} ${BACKPORT_LIB} ${PLATFORM_LIB} ws2_32 iphlpapi)
|
|
|
|
|
target_link_libraries(${RC_EXE} ${STATIC_LINK_LIBS} ${STATIC_LIB} ${BACKPORT_LIB} ${PLATFORM_LIB} ws2_32 iphlpapi)
|
|
|
|
@ -503,7 +517,7 @@ else()
|
|
|
|
|
target_link_libraries(${EXE} ${STATIC_LINK_LIBS} ${STATIC_LIB} ${PLATFORM_LIB} ws2_32 stdc++fs iphlpapi)
|
|
|
|
|
target_link_libraries(${CLIENT_EXE} ${STATIC_LINK_LIBS} ${STATIC_LIB} ${PLATFORM_LIB} ws2_32 stdc++fs iphlpapi)
|
|
|
|
|
target_link_libraries(${RC_EXE} ${STATIC_LINK_LIBS} ${STATIC_LIB} ${PLATFORM_LIB} ws2_32 stdc++fs iphlpapi)
|
|
|
|
|
elseif(WIN32)
|
|
|
|
|
elseif(MSVC)
|
|
|
|
|
target_link_libraries(${EXE} ${STATIC_LINK_LIBS} ${STATIC_LIB} ${PLATFORM_LIB} ws2_32 iphlpapi)
|
|
|
|
|
target_link_libraries(${CLIENT_EXE} ${STATIC_LINK_LIBS} ${STATIC_LIB} ${PLATFORM_LIB} ws2_32 iphlpapi)
|
|
|
|
|
target_link_libraries(${RC_EXE} ${STATIC_LINK_LIBS} ${STATIC_LIB} ${PLATFORM_LIB} ws2_32 iphlpapi)
|
|
|
|
@ -529,7 +543,7 @@ else()
|
|
|
|
|
add_library(${SHARED_LIB} SHARED ${LIB_SRC} ${LIB_PLATFORM_SRC})
|
|
|
|
|
if (MINGW)
|
|
|
|
|
set(${LIBS} ${LIBS} ws2_32 stdc++fs iphlpapi)
|
|
|
|
|
elseif(WIN32)
|
|
|
|
|
elseif(MSVC)
|
|
|
|
|
set(${LIBS} ${LIBS} ws2_32 iphlpapi)
|
|
|
|
|
endif(MINGW)
|
|
|
|
|
target_link_libraries(${SHARED_LIB} ${LIBS} ${THREAD_LIB})
|
|
|
|
|