mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2025-09-04 13:52:52 +02:00
Muuuuch easier to use external dependencies now Also tried out conan and vcpkg. Ran into dependency issues when solving for packages to install with conan. vcpkg is just obtuse as all hell to install and not easy to integrate
94 lines
3.6 KiB
CMake
94 lines
3.6 KiB
CMake
cmake_minimum_required(VERSION 3.13)
|
|
project(zerotier-core LANGUAGES CXX ASM)
|
|
|
|
|
|
file (GLOB core_src_glob ${PROJ_DIR}/node/*.cpp)
|
|
file (GLOB core_hdr_glob ${PROJ_DIR}/node/*.hpp)
|
|
|
|
if(${CPU_ARCHITECTURE} STREQUAL "x86_64")
|
|
set(CMAKE_ASM_FLAGS "${CFLAGS} -x assembler-with-cpp -z noexecstack")
|
|
set(ASM_SALSA_DIR ${CMAKE_SOURCE_DIR}/ext/x64-salsa2012-asm)
|
|
set(ASM_ED25519_DIR ${CMAKE_SOURCE_DIR}/ext/ed25519-amd64-asm)
|
|
list(APPEND core_src_glob
|
|
${ASM_SALSA_DIR}/salsa2012.s
|
|
#${ASM_ED25519_DIR}/batch.c
|
|
${ASM_ED25519_DIR}/choose_t.s
|
|
${ASM_ED25519_DIR}/consts.s
|
|
${ASM_ED25519_DIR}/fe25519_add.s
|
|
${ASM_ED25519_DIR}/fe25519_freeze.s
|
|
${ASM_ED25519_DIR}/fe25519_getparity.c
|
|
${ASM_ED25519_DIR}/fe25519_invert.c
|
|
${ASM_ED25519_DIR}/fe25519_iseq.c
|
|
${ASM_ED25519_DIR}/fe25519_iszero.c
|
|
${ASM_ED25519_DIR}/fe25519_mul.s
|
|
${ASM_ED25519_DIR}/fe25519_neg.c
|
|
${ASM_ED25519_DIR}/fe25519_pack.c
|
|
${ASM_ED25519_DIR}/fe25519_pow2523.c
|
|
${ASM_ED25519_DIR}/fe25519_setint.c
|
|
${ASM_ED25519_DIR}/fe25519_square.s
|
|
${ASM_ED25519_DIR}/fe25519_sub.s
|
|
${ASM_ED25519_DIR}/fe25519_unpack.c
|
|
${ASM_ED25519_DIR}/ge25519_add_p1p1.s
|
|
${ASM_ED25519_DIR}/ge25519_add.c
|
|
${ASM_ED25519_DIR}/ge25519_base.c
|
|
${ASM_ED25519_DIR}/ge25519_dbl_p1p1.s
|
|
${ASM_ED25519_DIR}/ge25519_double_scalarmult.c
|
|
${ASM_ED25519_DIR}/ge25519_double.c
|
|
${ASM_ED25519_DIR}/ge25519_isneutral.c
|
|
${ASM_ED25519_DIR}/ge25519_multi_scalarmult.c
|
|
${ASM_ED25519_DIR}/ge25519_nielsadd_p1p1.s
|
|
${ASM_ED25519_DIR}/ge25519_nielsadd2.s
|
|
${ASM_ED25519_DIR}/ge25519_p1p1_to_p2.s
|
|
${ASM_ED25519_DIR}/ge25519_p1p1_to_p3.s
|
|
${ASM_ED25519_DIR}/ge25519_pack.c
|
|
${ASM_ED25519_DIR}/ge25519_pnielsadd_p1p1.s
|
|
${ASM_ED25519_DIR}/ge25519_scalarmult_base.c
|
|
${ASM_ED25519_DIR}/ge25519_unpackneg.c
|
|
${ASM_ED25519_DIR}/heap_rootreplaced_1limb.s
|
|
${ASM_ED25519_DIR}/heap_rootreplaced_2limbs.s
|
|
${ASM_ED25519_DIR}/heap_rootreplaced_3limbs.s
|
|
${ASM_ED25519_DIR}/heap_rootreplaced.s
|
|
${ASM_ED25519_DIR}/hram.c
|
|
${ASM_ED25519_DIR}/index_heap.c
|
|
#${ASM_ED25519_DIR}/keypair.c
|
|
#${ASM_ED25519_DIR}/open.c
|
|
${ASM_ED25519_DIR}/sc25519_add.s
|
|
${ASM_ED25519_DIR}/sc25519_barrett.s
|
|
${ASM_ED25519_DIR}/sc25519_from_shortsc.c
|
|
${ASM_ED25519_DIR}/sc25519_from32bytes.c
|
|
${ASM_ED25519_DIR}/sc25519_from64bytes.c
|
|
${ASM_ED25519_DIR}/sc25519_iszero.c
|
|
${ASM_ED25519_DIR}/sc25519_lt.s
|
|
${ASM_ED25519_DIR}/sc25519_mul_shortsc.c
|
|
${ASM_ED25519_DIR}/sc25519_mul.c
|
|
${ASM_ED25519_DIR}/sc25519_slide.c
|
|
${ASM_ED25519_DIR}/sc25519_sub_nored.s
|
|
${ASM_ED25519_DIR}/sc25519_to32bytes.c
|
|
${ASM_ED25519_DIR}/sc25519_window4.c
|
|
${ASM_ED25519_DIR}/sign.c
|
|
${ASM_ED25519_DIR}/ull4_mul.s
|
|
)
|
|
list(APPEND core_hdr_glob
|
|
${ASM_SALSA_DIR}/salsa2012.h
|
|
${ASM_ED25519_DIR}/fe25519.h
|
|
${ASM_ED25519_DIR}/ge25519.h
|
|
${ASM_ED25519_DIR}/hram.h
|
|
${ASM_ED25519_DIR}/index_heap.h
|
|
${ASM_ED25519_DIR}/sc25519.h)
|
|
set_property(SOURCE ${ASM_ED25519_DIR}/fe25519_freeze.s PROPERTY COMPILE_FLAGS "-z noexecstack")
|
|
elseif(${CPU_ARCHITECTURE} STREQUAL "aarch64")
|
|
|
|
endif()
|
|
|
|
add_library(zerotier-core STATIC ${core_src_glob} ${core_hdr_glob})
|
|
|
|
target_include_directories(zerotier-core
|
|
PRIVATE
|
|
${prometheus-cpp-lite_INCLUDE}
|
|
)
|
|
target_link_libraries(zerotier-core
|
|
PRIVATE
|
|
nlohmann_json::nlohmann_json
|
|
Threads::Threads
|
|
prometheus-cpp-lite
|
|
Threads::Threads)
|