diff --git a/CMakeLists.txt b/CMakeLists.txt index 8f5ceac..cb1bbba 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -34,6 +34,13 @@ include(GNUInstallDirs) include(CheckSymbolExists) include(CMakePushCheckState) +include_directories( + ${GSOURCE_PATH}/include/ + src/include/ + src/ + ${CMAKE_CURRENT_BINARY_DIR} +) + set(STRICT_OPTIONS_CPP ) set(STRICT_OPTIONS_C ) set(STRICT_OPTIONS_CXX ) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 0f332cb..0294fc6 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -61,6 +61,10 @@ else() # nothing picked yet, stick to the message("Target architecture is general purpose 32bits") endif() +include_directories( + ${PROJECT_SOURCE_DIR}/src/include/${TARGET_ARCH_DIR} +) + set(DECAF_SOURCE_FILES_CXX ) @@ -75,10 +79,7 @@ if(ENABLE_STATIC) add_library(decaf-static STATIC ${DECAF_HEADER_FILES} ${DECAF_SOURCE_FILES_C} ${DECAF_SOURCE_FILES_CXX} $ $ $ $) add_dependencies(decaf-static generatedCode) set_target_properties(decaf-static PROPERTIES OUTPUT_NAME decaf) - target_include_directories(decaf-static - PUBLIC $ - PRIVATE ${PROJECT_SOURCE_DIR}/src/include - ) + target_include_directories(decaf-static PUBLIC) target_link_libraries(decaf-static INTERFACE) endif() if(ENABLE_SHARED) @@ -88,10 +89,7 @@ if(ENABLE_SHARED) set_target_properties(decaf PROPERTIES LINK_FLAGS "-stdlib=libc++") endif() set_target_properties(decaf PROPERTIES VERSION ${DECAF_SO_VERSION}) - target_include_directories(decaf - PUBLIC $ - PRIVATE ${PROJECT_SOURCE_DIR}/src/include - ) + target_include_directories(decaf PUBLIC) target_link_libraries(decaf PRIVATE) if(MSVC) if(CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo") diff --git a/src/curve25519/CMakeLists.txt b/src/curve25519/CMakeLists.txt index 9374405..766736f 100644 --- a/src/curve25519/CMakeLists.txt +++ b/src/curve25519/CMakeLists.txt @@ -4,6 +4,13 @@ # Released under the MIT License. See LICENSE.txt for license information. # ############################################################################ + +include_directories( + ${PROJECT_SOURCE_DIR}/src/p25519 + ${GSOURCE_PATH}/c/p25519 + ${PROJECT_SOURCE_DIR}/src/p25519/${TARGET_ARCH_DIR_P25519} +) + set(CURVE25519_SOURCE_FILES_C ${GSOURCE_PATH}/c/curve25519/decaf.c ${GSOURCE_PATH}/c/curve25519/elligator.c @@ -19,6 +26,5 @@ SET_SOURCE_FILES_PROPERTIES(${GSOURCE_PATH}/c/curve25519/eddsa.c PROPERTIES GENE SET_SOURCE_FILES_PROPERTIES(${PROJECT_SOURCE_DIR}/src/curve25519/decaf_tables.c PROPERTIES GENERATED 1) add_library(CURVE25519 OBJECT ${CURVE25519_SOURCE_FILES_C}) -add_dependencies(CURVE25519 generatedCode) -target_link_libraries(CURVE25519 PRIVATE p25519) +add_dependencies(CURVE25519 generatedCode p25519) set_target_properties(CURVE25519 PROPERTIES POSITION_INDEPENDENT_CODE True) diff --git a/src/ed448goldilocks/CMakeLists.txt b/src/ed448goldilocks/CMakeLists.txt index 53ff7c3..3b93205 100644 --- a/src/ed448goldilocks/CMakeLists.txt +++ b/src/ed448goldilocks/CMakeLists.txt @@ -4,6 +4,13 @@ # Released under the MIT License. See LICENSE.txt for license information. # ############################################################################ + +include_directories( + ${PROJECT_SOURCE_DIR}/src/p448 + ${GSOURCE_PATH}/c/p448 + ${PROJECT_SOURCE_DIR}/src/p448/${TARGET_ARCH_DIR_P448} +) + set(CURVE448_SOURCE_FILES_C ${GSOURCE_PATH}/c/ed448goldilocks/decaf.c ${GSOURCE_PATH}/c/ed448goldilocks/elligator.c @@ -19,6 +26,5 @@ SET_SOURCE_FILES_PROPERTIES(${GSOURCE_PATH}/c/ed448goldilocks/eddsa.c PROPERTIES SET_SOURCE_FILES_PROPERTIES(${PROJECT_SOURCE_DIR}/src/ed448goldilocks/decaf_tables.c PROPERTIES GENERATED 1) add_library(CURVE448 OBJECT ${CURVE448_SOURCE_FILES_C}) -add_dependencies(CURVE448 generatedCode) -target_link_libraries(CURVE448 PRIVATE p448) +add_dependencies(CURVE448 generatedCode p448) set_target_properties(CURVE448 PROPERTIES POSITION_INDEPENDENT_CODE True) diff --git a/src/generator/curve25519/CMakeLists.txt b/src/generator/curve25519/CMakeLists.txt index 2349b63..0edb165 100644 --- a/src/generator/curve25519/CMakeLists.txt +++ b/src/generator/curve25519/CMakeLists.txt @@ -84,13 +84,17 @@ add_custom_target(generatorCurve25519 DEPENDS ${GSOURCE_PATH}/include/decaf/point_255.hxx ${GSOURCE_PATH}/include/decaf/ed255.hxx ) +include_directories( + ${PROJECT_SOURCE_DIR}/src/p25519 + ${GSOURCE_PATH}/c/p25519 + ${PROJECT_SOURCE_DIR}/src/p25519/${TARGET_ARCH_DIR_P25519} +) add_executable(decaf_gen_tables_curve25519 EXCLUDE_FROM_ALL ${GSOURCE_PATH}/c/curve25519/decaf_gen_tables.c ${GSOURCE_PATH}/c/curve25519/decaf.c ${GSOURCE_PATH}/c/curve25519/scalar.c ${PROJECT_SOURCE_DIR}/src/utils.c $) -target_link_libraries(decaf_gen_tables_curve25519 PRIVATE p25519) add_custom_target(decaf_tables_curve25519 COMMAND decaf_gen_tables_curve25519 > ${PROJECT_SOURCE_DIR}/src/curve25519/decaf_tables.c diff --git a/src/generator/ed448goldilocks/CMakeLists.txt b/src/generator/ed448goldilocks/CMakeLists.txt index 5c4b4b8..1e31ee9 100644 --- a/src/generator/ed448goldilocks/CMakeLists.txt +++ b/src/generator/ed448goldilocks/CMakeLists.txt @@ -92,13 +92,17 @@ add_custom_target(generatorEd448goldilocks DEPENDS ${GSOURCE_PATH}/include/decaf/point_448.hxx ${GSOURCE_PATH}/include/decaf/ed448.hxx ) +include_directories( + ${PROJECT_SOURCE_DIR}/src/p448 + ${GSOURCE_PATH}/c/p448 + ${PROJECT_SOURCE_DIR}/src/p448/${TARGET_ARCH_DIR_P448} +) add_executable(decaf_gen_tables_ed448goldilocks EXCLUDE_FROM_ALL ${GSOURCE_PATH}/c/ed448goldilocks/decaf_gen_tables.c ${GSOURCE_PATH}/c/ed448goldilocks/decaf.c ${GSOURCE_PATH}/c/ed448goldilocks/scalar.c ${PROJECT_SOURCE_DIR}/src/utils.c $) -target_link_libraries(decaf_gen_tables_ed448goldilocks PRIVATE p448) add_custom_target(decaf_tables_ed448goldilocks COMMAND decaf_gen_tables_ed448goldilocks > ${PROJECT_SOURCE_DIR}/src/ed448goldilocks/decaf_tables.c diff --git a/src/p25519/CMakeLists.txt b/src/p25519/CMakeLists.txt index efd12ec..c6153fc 100644 --- a/src/p25519/CMakeLists.txt +++ b/src/p25519/CMakeLists.txt @@ -4,6 +4,12 @@ # Released under the MIT License. See LICENSE.txt for license information. # ############################################################################ +include_directories( + ${PROJECT_SOURCE_DIR}/src/p25519 + ${GSOURCE_PATH}/c/p25519 + ${PROJECT_SOURCE_DIR}/src/p25519/${TARGET_ARCH_DIR_P25519} +) + set(P25519_HEADER_FILES ${GSOURCE_PATH}/c/p25519/f_field.h ${TARGET_ARCH_DIR_P25519}/f_impl.h @@ -19,12 +25,5 @@ SET_SOURCE_FILES_PROPERTIES(${GSOURCE_PATH}/c/p25519/f_generic.c PROPERTIES GENE add_library(p25519 OBJECT ${P25519_HEADER_FILES} ${P25519_SOURCE_FILES_C}) add_dependencies(p25519 generatorP25519) -target_include_directories(p25519 - PUBLIC ${GSOURCE_PATH}/include - PUBLIC ${GSOURCE_PATH}/c/p25519 - PUBLIC ${TARGET_ARCH_DIR_P25519} - PUBLIC ${PROJECT_SOURCE_DIR}/src/include/${TARGET_ARCH_DIR} - PUBLIC ${PROJECT_SOURCE_DIR}/src/include -) set_target_properties(p25519 PROPERTIES POSITION_INDEPENDENT_CODE True) diff --git a/src/p448/CMakeLists.txt b/src/p448/CMakeLists.txt index 2794b4b..c9eef94 100644 --- a/src/p448/CMakeLists.txt +++ b/src/p448/CMakeLists.txt @@ -4,6 +4,12 @@ # Released under the MIT License. See LICENSE.txt for license information. # ############################################################################ +include_directories( + ${PROJECT_SOURCE_DIR}/src/p448 + ${GSOURCE_PATH}/c/p448 + ${PROJECT_SOURCE_DIR}/src/p448/${TARGET_ARCH_DIR_P448} +) + set(P448_HEADER_FILES ${GSOURCE_PATH}/c/p448/f_field.h ${TARGET_ARCH_DIR_P448}/f_impl.h @@ -19,12 +25,5 @@ SET_SOURCE_FILES_PROPERTIES(${GSOURCE_PATH}/c/p448/f_generic.c PROPERTIES GENERA add_library(p448 OBJECT ${P448_HEADER_FILES} ${P448_SOURCE_FILES_C}) add_dependencies(p448 generatorP448) -target_include_directories(p448 - PUBLIC ${GSOURCE_PATH}/include - PUBLIC ${GSOURCE_PATH}/c/p448 - PUBLIC ${TARGET_ARCH_DIR_P448} - PUBLIC ${PROJECT_SOURCE_DIR}/src/include/${TARGET_ARCH_DIR} - PUBLIC ${PROJECT_SOURCE_DIR}/src/include -) set_target_properties(p448 PROPERTIES POSITION_INDEPENDENT_CODE True)