2023-08-23 02:16:21 +00:00
|
|
|
CMAKE_MINIMUM_REQUIRED(VERSION 3.22)
|
|
|
|
PROJECT(NetTunnelSDK)
|
2023-08-22 07:12:52 +00:00
|
|
|
|
2023-08-23 02:16:21 +00:00
|
|
|
SET(CMAKE_CXX_STANDARD 17)
|
2023-08-22 07:12:52 +00:00
|
|
|
|
2023-08-23 02:16:21 +00:00
|
|
|
FIND_PATH(CPPCODEC_INCLUDE_DIRS "cppcodec/base32_crockford.hpp")
|
2023-08-22 07:12:52 +00:00
|
|
|
INCLUDE_DIRECTORIES(include ./include/json ./include/httplib ../depends/WireGuardNT/include ${CPPCODEC_INCLUDE_DIRS})
|
|
|
|
FILE(GLOB CPP_HEADS ./include/*.h ./include/json/AIGCJson.hpp ./include/httplib/httplib.h ../depends/WireGuardNT/include/*.h ${CPPCODEC_INCLUDE_DIRS}/*.hpp)
|
|
|
|
|
|
|
|
ADD_DEFINITIONS(-DNETTUNNELSDK_EXPORTS)
|
|
|
|
AUX_SOURCE_DIRECTORY(tunnel CPP_SRC)
|
|
|
|
AUX_SOURCE_DIRECTORY(crypto CPP_SRC)
|
|
|
|
AUX_SOURCE_DIRECTORY(misc CPP_SRC)
|
|
|
|
AUX_SOURCE_DIRECTORY(network CPP_SRC)
|
|
|
|
AUX_SOURCE_DIRECTORY(protocol CPP_SRC)
|
|
|
|
AUX_SOURCE_DIRECTORY(user CPP_SRC)
|
|
|
|
|
|
|
|
ADD_LIBRARY(NetTunnelSDK SHARED dllmain.cpp ${CPP_SRC} ${CPP_HEADS})
|
2023-08-23 02:16:21 +00:00
|
|
|
TARGET_LINK_LIBRARIES(NetTunnelSDK PRIVATE spdlog::spdlog)
|
|
|
|
TARGET_LINK_LIBRARIES(NetTunnelSDK PRIVATE magic_enum::magic_enum)
|
|
|
|
TARGET_LINK_LIBRARIES(NetTunnelSDK PRIVATE OpenSSL::SSL OpenSSL::Crypto)
|
|
|
|
TARGET_LINK_LIBRARIES(NetTunnelSDK PRIVATE rapidjson)
|
|
|
|
|
|
|
|
FILE(GLOB SDK_DLLS ${CMAKE_CURRENT_BINARY_DIR}/*.dll)
|
2023-08-22 07:12:52 +00:00
|
|
|
|
|
|
|
ADD_CUSTOM_COMMAND(TARGET NetTunnelSDK
|
|
|
|
PRE_BUILD
|
|
|
|
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
|
|
|
COMMENT "!!!!!! Notice: Clearup SDK includes."
|
|
|
|
COMMAND ${CMAKE_COMMAND} -E make_directory "${PROJECT_SOURCE_DIR}/sdk"
|
2023-08-23 02:16:21 +00:00
|
|
|
COMMAND ${CMAKE_COMMAND} -E make_directory "${WORKSPACE_BINARY_DIR}"
|
2023-08-22 07:12:52 +00:00
|
|
|
COMMAND ../scripts/cleansdk.bat)
|
|
|
|
|
|
|
|
ADD_CUSTOM_COMMAND(TARGET NetTunnelSDK
|
|
|
|
POST_BUILD
|
|
|
|
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
|
|
|
COMMENT "!!!!!! Notice: Create SDK includes."
|
|
|
|
COMMAND ${CMAKE_COMMAND} -E make_directory "${PROJECT_SOURCE_DIR}/sdk"
|
|
|
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${PROJECT_SOURCE_DIR}/include/sccsdk.h" "${PROJECT_SOURCE_DIR}/sdk"
|
|
|
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${PROJECT_SOURCE_DIR}/include/common.h" "${PROJECT_SOURCE_DIR}/sdk"
|
|
|
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${PROJECT_SOURCE_DIR}/include/usrerr.h" "${PROJECT_SOURCE_DIR}/sdk"
|
2023-08-23 02:16:21 +00:00
|
|
|
COMMAND ../scripts/gensdk.bat
|
|
|
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${SDK_DLLS} ${WORKSPACE_BINARY_DIR}
|
|
|
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_BINARY_DIR}/NetTunnelSDK.dll ${WORKSPACE_BINARY_DIR}
|
|
|
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_BINARY_DIR}/NetTunnelSDK.lib ${WORKSPACE_BINARY_DIR}
|
|
|
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_BINARY_DIR}/NetTunnelSDK.pdb ${WORKSPACE_BINARY_DIR}
|
|
|
|
)
|