diff --git a/components/mbedtls/CMakeLists.txt b/components/mbedtls/CMakeLists.txt index aff2342fcd..73a13d519f 100644 --- a/components/mbedtls/CMakeLists.txt +++ b/components/mbedtls/CMakeLists.txt @@ -1,8 +1,16 @@ idf_build_get_property(idf_target IDF_TARGET) idf_build_get_property(python PYTHON) -idf_component_register(SRCS "esp_crt_bundle/esp_crt_bundle.c" - INCLUDE_DIRS "port/include" "mbedtls/include" "esp_crt_bundle/include" +set(mbedtls_srcs "") +set(mbedtls_include_dirs "port/include" "mbedtls/include") + +if(CONFIG_MBEDTLS_CERTIFICATE_BUNDLE) + list(APPEND mbedtls_srcs "esp_crt_bundle/esp_crt_bundle.c") + list(APPEND mbedtls_include_dirs "esp_crt_bundle/include") +endif() + +idf_component_register(SRCS "${mbedtls_srcs}" + INCLUDE_DIRS "${mbedtls_include_dirs}" REQUIRES lwip PRIV_REQUIRES esp_pm soc ) @@ -181,7 +189,14 @@ endif() set_property(TARGET mbedcrypto APPEND PROPERTY LINK_INTERFACE_LIBRARIES mbedtls) # Link mbedtls libraries to component library -target_link_libraries(${COMPONENT_LIB} PUBLIC ${mbedtls_targets}) +if(mbedtls_srcs STREQUAL "") + # For no sources in component library we must use "INTERFACE" + set(linkage_type INTERFACE) +else() + set(linkage_type PUBLIC) +endif() + +target_link_libraries(${COMPONENT_LIB} ${linkage_type} ${mbedtls_targets}) if(CONFIG_ESP_TLS_USE_DS_PERIPHERAL) # Link target (e.g. esp32s2) library to component library @@ -189,11 +204,11 @@ if(CONFIG_ESP_TLS_USE_DS_PERIPHERAL) set_property(TARGET mbedcrypto APPEND PROPERTY INTERFACE_LINK_LIBRARIES $) # The linker seems to be unable to resolve all the dependencies without increasing this set_property(TARGET mbedcrypto APPEND PROPERTY LINK_INTERFACE_MULTIPLICITY 6) - target_link_libraries(${COMPONENT_LIB} PUBLIC ${target_lib}) + target_link_libraries(${COMPONENT_LIB} ${linkage_type} ${target_lib}) endif() # Link esp-cryptoauthlib to mbedtls if(CONFIG_ATCA_MBEDTLS_ECDSA) idf_component_get_property(cryptoauthlib esp-cryptoauthlib COMPONENT_LIB) - target_link_libraries(${COMPONENT_LIB} PUBLIC ${cryptoauthlib}) + target_link_libraries(${COMPONENT_LIB} ${linkage_type} ${cryptoauthlib}) endif()