mirror of
https://github.com/espressif/esp-idf.git
synced 2026-10-01 18:50:34 +03:00
esp_mem.c in the builtin target via target_sources(builtin PRIVATE ...) called from the parent CMakeLists. This cross-directory source injection causes CMake's Ninja generator on Windows to produce unstable TARGET_PDB/RSP_FILE paths across reconfigures, changing the ninja command hash and forcing a re-archive of libmbed-builtin.a on every cmake run — even when no source changed. This broke test_rebuild_source_files. Fix by adding esp_mem.c to the IDF mbedtls component library (mbedtls_srcs) instead. The final ELF link uses --start-group, so builtin's platform.o resolves esp_mbedtls_mem_calloc/free from the component library regardless of archive order. esp_mem.c is IDF-specific code (heap_caps_calloc, sdkconfig.h) and belongs in the port layer, not in any submodule target.
42 lines
1.3 KiB
CMake
42 lines
1.3 KiB
CMake
set(srcs esp_tls.c esp-tls-crypto/esp_tls_crypto.c esp_tls_error_capture.c esp_tls_platform_port.c)
|
|
if(CONFIG_ESP_TLS_USING_MBEDTLS)
|
|
list(APPEND srcs
|
|
"esp_tls_mbedtls.c")
|
|
endif()
|
|
|
|
if(CONFIG_ESP_TLS_CUSTOM_STACK)
|
|
list(APPEND srcs
|
|
"esp_tls_custom_stack.c")
|
|
endif()
|
|
|
|
set(priv_req http_parser esp_timer)
|
|
if(NOT ${IDF_TARGET} STREQUAL "linux")
|
|
list(APPEND priv_req lwip)
|
|
else()
|
|
# For linux target on Build system v2, add lwip to PRIV_REQUIRES when CONFIG_LWIP_ENABLE is set.
|
|
if(CONFIG_LWIP_ENABLE AND IDF_BUILD_V2)
|
|
list(APPEND priv_req lwip)
|
|
endif()
|
|
endif()
|
|
|
|
idf_component_register(SRCS "${srcs}"
|
|
INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR} esp-tls-crypto
|
|
PRIV_INCLUDE_DIRS "private_include"
|
|
REQUIRES mbedtls
|
|
PRIV_REQUIRES ${priv_req})
|
|
|
|
|
|
if(NOT ${IDF_TARGET} STREQUAL "linux")
|
|
idf_component_get_property(lwip lwip COMPONENT_LIB)
|
|
else()
|
|
# For linux target, define ESP_TLS_WITH_LWIP if LWIP is enabled in the build
|
|
if(CONFIG_LWIP_ENABLE)
|
|
target_compile_definitions(${COMPONENT_LIB} PRIVATE ESP_TLS_WITH_LWIP=1)
|
|
endif()
|
|
endif()
|
|
|
|
|
|
if(CONFIG_ESP_TLS_USE_SECURE_ELEMENT)
|
|
idf_component_optional_requires(PRIVATE espressif__esp-cryptoauthlib esp-cryptoauthlib)
|
|
endif()
|