diff --git a/CMakeLists.txt b/CMakeLists.txt index 588a71b..0954d94 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -34,13 +34,6 @@ 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 0294fc6..0f332cb 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -61,10 +61,6 @@ 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 ) @@ -79,7 +75,10 @@ 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) + target_include_directories(decaf-static + PUBLIC $ + PRIVATE ${PROJECT_SOURCE_DIR}/src/include + ) target_link_libraries(decaf-static INTERFACE) endif() if(ENABLE_SHARED) @@ -89,7 +88,10 @@ 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) + target_include_directories(decaf + PUBLIC $ + PRIVATE ${PROJECT_SOURCE_DIR}/src/include + ) 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 766736f..9374405 100644 --- a/src/curve25519/CMakeLists.txt +++ b/src/curve25519/CMakeLists.txt @@ -4,13 +4,6 @@ # 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 @@ -26,5 +19,6 @@ 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 p25519) +add_dependencies(CURVE25519 generatedCode) +target_link_libraries(CURVE25519 PRIVATE p25519) set_target_properties(CURVE25519 PROPERTIES POSITION_INDEPENDENT_CODE True) diff --git a/src/ed448goldilocks/CMakeLists.txt b/src/ed448goldilocks/CMakeLists.txt index 3b93205..53ff7c3 100644 --- a/src/ed448goldilocks/CMakeLists.txt +++ b/src/ed448goldilocks/CMakeLists.txt @@ -4,13 +4,6 @@ # 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 @@ -26,5 +19,6 @@ 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 p448) +add_dependencies(CURVE448 generatedCode) +target_link_libraries(CURVE448 PRIVATE 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 0edb165..2349b63 100644 --- a/src/generator/curve25519/CMakeLists.txt +++ b/src/generator/curve25519/CMakeLists.txt @@ -84,17 +84,13 @@ 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 1e31ee9..5c4b4b8 100644 --- a/src/generator/ed448goldilocks/CMakeLists.txt +++ b/src/generator/ed448goldilocks/CMakeLists.txt @@ -92,17 +92,13 @@ 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 c6153fc..efd12ec 100644 --- a/src/p25519/CMakeLists.txt +++ b/src/p25519/CMakeLists.txt @@ -4,12 +4,6 @@ # 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 @@ -25,5 +19,12 @@ 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 c9eef94..2794b4b 100644 --- a/src/p448/CMakeLists.txt +++ b/src/p448/CMakeLists.txt @@ -4,12 +4,6 @@ # 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 @@ -25,5 +19,12 @@ 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)