ZeroTierOne/core/CMakeLists.txt

120 lines
2 KiB
CMake

cmake_minimum_required (VERSION 3.0)
project(zt_core)
configure_file(
version.h.in
version.h
)
set(core_headers
zerotier.h
Address.hpp
Blob.hpp
Buf.hpp
C25519.hpp
CapabilityCredential.hpp
Certificate.hpp
Defaults.hpp
MembershipCredential.hpp
OwnershipCredential.hpp
Constants.hpp
Containers.hpp
Credential.hpp
Defragmenter.hpp
Dictionary.hpp
ECC384.hpp
EphemeralKey.hpp
Expect.hpp
FCV.hpp
Fingerprint.hpp
Identity.hpp
InetAddress.hpp
Locator.hpp
LZ4.hpp
MAC.hpp
Member.hpp
MulticastGroup.hpp
Mutex.hpp
Network.hpp
NetworkConfig.hpp
Node.hpp
OS.hpp
Path.hpp
Peer.hpp
Poly1305.hpp
Protocol.hpp
RuntimeEnvironment.hpp
Salsa20.hpp
ScopedPtr.hpp
SelfAwareness.hpp
SHA512.hpp
SharedPtr.hpp
SymmetricKey.hpp
TagCredential.hpp
Topology.hpp
Trace.hpp
TriviallyCopyable.hpp
Utils.hpp
VL1.hpp
VL2.hpp
)
set(core_src
AES.cpp
Buf.cpp
C25519.cpp
CapabilityCredential.cpp
Certificate.cpp
Defaults.cpp
MembershipCredential.cpp
OwnershipCredential.cpp
Credential.cpp
Dictionary.cpp
ECC384.cpp
Endpoint.cpp
Identity.cpp
InetAddress.cpp
Locator.cpp
LZ4.cpp
Member.cpp
Network.cpp
NetworkConfig.cpp
Node.cpp
Path.cpp
Peer.cpp
Poly1305.cpp
RevocationCredential.cpp
Salsa20.cpp
SelfAwareness.cpp
SHA512.cpp
TagCredential.cpp
Topology.cpp
Trace.cpp
Utils.cpp
VL1.cpp
VL2.cpp
)
add_library(${PROJECT_NAME} STATIC ${core_src} ${core_headers})
target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_BINARY_DIR})
if(WIN32)
set(libs ${libs} wsock32 ws2_32 rpcrt4 iphlpapi)
target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_17)
else(WIN32)
set(libs ${libs} pthread)
if (APPLE)
target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_17)
else(APPLE)
target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_11)
endif(APPLE)
endif(WIN32)
add_executable(zt_core_tests Tests.h Tests.cpp)
target_compile_definitions(zt_core_tests PRIVATE ZT_ENABLE_TESTS=1 ZT_STANDALONE_TESTS=1)
target_include_directories(
${PROJECT_NAME}
PUBLIC
${CMAKE_BINARY_DIR}/core
)
target_link_libraries(zt_core_tests zt_core ${libs})