Untangle messy nested dependency tree

lokinet-cryptography depends on lokinet-base which depends on
lokinet-cryptography.

Fixed this but splitting lokinet-cryptography into the libntrup code
(which is what is really needed) and the llarp/crypto code (which isn't
needed for lokinet-base).
This commit is contained in:
Jason Rhinelander 2023-10-16 17:53:01 -03:00 committed by dr7ana
parent e4315cdc69
commit 98f2d02103
2 changed files with 11 additions and 10 deletions

View File

@ -1,5 +1,5 @@
add_library(lokinet-cryptography
add_library(lokinet-libntrup
STATIC
libntrup/src/ntru.cpp
libntrup/src/ref/randomsmall.c
@ -20,7 +20,7 @@ add_library(lokinet-cryptography
libntrup/src/ref/rq.c
)
target_include_directories(lokinet-cryptography PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/libntrup/include)
target_include_directories(lokinet-libntrup PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/libntrup/include)
# The avx implementation uses runtime CPU feature detection to enable itself, so we *always* want to
# compile it with avx2/fma support when supported by the compiler even if we aren't compiling with
@ -48,19 +48,19 @@ include(CheckCXXCompilerFlag)
check_cxx_compiler_flag(-mavx2 COMPILER_SUPPORTS_AVX2)
check_cxx_compiler_flag(-mfma COMPILER_SUPPORTS_FMA)
if(COMPILER_SUPPORTS_AVX2 AND COMPILER_SUPPORTS_FMA AND (NOT ANDROID))
target_sources(lokinet-cryptography PRIVATE ${NTRU_AVX_SRC})
target_sources(lokinet-libntrup PRIVATE ${NTRU_AVX_SRC})
set_property(SOURCE ${NTRU_AVX_SRC} APPEND PROPERTY COMPILE_FLAGS "-mavx2 -mfma")
message(STATUS "Building libntrup with runtime AVX2/FMA support")
else()
target_sources(lokinet-cryptography PRIVATE libntrup/src/noavx-stubs.c)
target_sources(lokinet-libntrup PRIVATE libntrup/src/noavx-stubs.c)
message(STATUS "Not building with libntrup runtime AVX2/FMA support (either this architecture doesn't support them, or your compile doesn't support the -mavx2 -mfma flags")
endif()
enable_lto(lokinet-cryptography)
enable_lto(lokinet-libntrup)
if (WARNINGS_AS_ERRORS)
target_compile_options(lokinet-cryptography PUBLIC -Wall -Wextra -Werror)
target_compile_options(lokinet-libntrup PUBLIC -Wall -Wextra -Werror)
endif()
target_link_libraries(lokinet-cryptography PUBLIC sodium)
target_link_libraries(lokinet-libntrup PUBLIC sodium)

View File

@ -1,6 +1,7 @@
include(Version)
target_sources(lokinet-cryptography PRIVATE
add_library(lokinet-cryptography
STATIC
crypto/crypto.cpp
crypto/encrypted_frame.cpp
crypto/types.cpp
@ -250,7 +251,7 @@ add_library(lokinet-base INTERFACE)
target_include_directories(lokinet-base
INTERFACE ${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/include
)
target_link_libraries(lokinet-base INTERFACE quic lokinet-cryptography)
target_link_libraries(lokinet-base INTERFACE quic)
if(WITH_PEERSTATS)
target_compile_definitions(lokinet-base INTERFACE -DLOKINET_PEERSTATS_BACKEND)
@ -270,7 +271,7 @@ function(lokinet_link_lib libname)
endfunction()
# internal public linkages of components
lokinet_link_lib(lokinet-util)
lokinet_link_lib(lokinet-util lokinet-libntrup)
lokinet_link_lib(lokinet-cryptography lokinet-libcrypt lokinet-util)
lokinet_link_lib(lokinet-peerstats lokinet-context)
lokinet_link_lib(lokinet-consensus lokinet-context)