From 8fb4bc55815d6c2ea4aeb0abd615a2866a459db7 Mon Sep 17 00:00:00 2001 From: Frede Hoey Braendstrup Date: Thu, 26 Mar 2026 12:00:10 +0100 Subject: [PATCH] Fix CMake targets include path propagation In all places where the cmake files call include_directories, the first and second parameters are a target and a scope specifier. For include_directories, that means literally adding those parameters to the include path via -I flags, ie. ```cmake include_directories(target PUBLIC ...) -> -Itarget -IPUBLIC ``` This was probably intended to be a target_include_directories instead, such that any library or executable calling target_link_libraries would also have those includes propagated see: https://cmake.org/cmake/help/latest/command/include_directories.html https://cmake.org/cmake/help/latest/command/target_include_directories.html#command:target_include_directories --- lib/CMakeLists.txt | 18 +++++++++--------- lib/cmake/mbedtls.cmake | 2 +- lib/cmake/wolfssl.cmake | 6 +++--- test/CMakeLists.txt | 33 +++++++++++++++++---------------- 4 files changed, 30 insertions(+), 29 deletions(-) diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index d88aa39c6..77427e2da 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -320,16 +320,16 @@ endif(BUILD_TESTS) configure_file(atca_config.h.in atca_config.h @ONLY) set(LIB_INC ${LIB_INC} ${CMAKE_CURRENT_BINARY_DIR}/atca_config.h) -include_directories(cryptoauth PUBLIC ${CMAKE_CURRENT_BINARY_DIR} - ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_BINARY_DIR}/downloaded - ../app/tng - ../third_party - ../third_party/hidapi/hidapi - ${USB_INCLUDE_DIR}) +target_include_directories(cryptoauth PUBLIC ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_BINARY_DIR}/downloaded + ../app/tng + ../third_party + ../third_party/hidapi/hidapi + ${USB_INCLUDE_DIR}) if(APPLE) -include_directories(cryptoauth PUBLIC ../third_party/hidapi/mac) +target_include_directories(cryptoauth PUBLIC ../third_party/hidapi/mac) endif() if(ATCA_MBEDTLS) @@ -341,7 +341,7 @@ target_link_libraries(cryptoauth wolfssl) endif() if(ATCA_OPENSSL) -include_directories(cryptoauth PUBLIC ${OPENSSL_INCLUDE_DIR}) +target_include_directories(cryptoauth PUBLIC ${OPENSSL_INCLUDE_DIR}) target_link_libraries(cryptoauth ${OPENSSL_CRYPTO_LIBRARY}) endif() diff --git a/lib/cmake/mbedtls.cmake b/lib/cmake/mbedtls.cmake index c86972547..51e256f8b 100644 --- a/lib/cmake/mbedtls.cmake +++ b/lib/cmake/mbedtls.cmake @@ -15,7 +15,7 @@ target_compile_definitions(mbedtls PUBLIC -DMBEDTLS_X509_ALLOW_UNSUPPORTED_CRITI if(NOT MSVC) target_compile_options(mbedtls PRIVATE -fPIC) endif() -include_directories(mbedtls PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} +target_include_directories(mbedtls PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_BINARY_DIR}/downloaded/mbedtls/include) endif() diff --git a/lib/cmake/wolfssl.cmake b/lib/cmake/wolfssl.cmake index d3b0fa417..db5fd3adc 100644 --- a/lib/cmake/wolfssl.cmake +++ b/lib/cmake/wolfssl.cmake @@ -52,9 +52,9 @@ if(NOT MSVC) target_compile_options(wolfssl PRIVATE -fPIC) endif() -include_directories(wolfssl PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_BINARY_DIR}/downloaded/wolfssl - ${CMAKE_CURRENT_BINARY_DIR}) +target_include_directories(wolfssl PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_BINARY_DIR}/downloaded/wolfssl + ${CMAKE_CURRENT_BINARY_DIR}) file(GLOB WOLFSSL_SRC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "wolfssl/*.c") diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 28ec07fe0..0509cf568 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -52,22 +52,23 @@ endif() add_executable(cryptoauth_test ${CRYPTOAUTH_TEST_SRC} ${UNITY_SRC}) -include_directories(cryptoauth_test ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_BINARY_DIR}/downloaded - ${CMAKE_BINARY_DIR}/downloaded/wolfssl - ${CMAKE_BINARY_DIR}/downloaded/mbedtls/include - ${CMAKE_CURRENT_SOURCE_DIR}/../ - ${CMAKE_CURRENT_SOURCE_DIR}/api_atcab - ${CMAKE_CURRENT_SOURCE_DIR}/api_calib - ${CMAKE_CURRENT_SOURCE_DIR}/api_crypto - ${CMAKE_CURRENT_SOURCE_DIR}/api_talib - ${CMAKE_CURRENT_SOURCE_DIR}/hal - ${CMAKE_CURRENT_SOURCE_DIR}/integration - ${CMAKE_CURRENT_SOURCE_DIR}/../lib - ${CMAKE_CURRENT_SOURCE_DIR}/../third_party - ${CMAKE_CURRENT_SOURCE_DIR}/../third_party/mbedtls/include - ${CMAKE_CURRENT_SOURCE_DIR}/../third_party/wolfssl - ${CMAKE_CURRENT_BINARY_DIR}/../lib) +target_include_directories(cryptoauth_test PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_BINARY_DIR}/downloaded + ${CMAKE_BINARY_DIR}/downloaded/wolfssl + ${CMAKE_BINARY_DIR}/downloaded/mbedtls/include + ${CMAKE_CURRENT_SOURCE_DIR}/../ + ${CMAKE_CURRENT_SOURCE_DIR}/api_atcab + ${CMAKE_CURRENT_SOURCE_DIR}/api_calib + ${CMAKE_CURRENT_SOURCE_DIR}/api_crypto + ${CMAKE_CURRENT_SOURCE_DIR}/api_talib + ${CMAKE_CURRENT_SOURCE_DIR}/hal + ${CMAKE_CURRENT_SOURCE_DIR}/integration + ${CMAKE_CURRENT_SOURCE_DIR}/../lib + ${CMAKE_CURRENT_SOURCE_DIR}/../third_party + ${CMAKE_CURRENT_SOURCE_DIR}/../third_party/mbedtls/include + ${CMAKE_CURRENT_SOURCE_DIR}/../third_party/wolfssl + ${CMAKE_CURRENT_BINARY_DIR}/../lib) target_link_libraries(cryptoauth_test cryptoauth)