From cbe5fa4d4047d028543e25d97f42a363bc09ca38 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Wed, 14 May 2025 09:41:04 +0200 Subject: [PATCH] cmake: library: Add custom targets for generated files Add a custom target that depends on crypto generated files, and make both the static and shared crypto libraries depend on it. This ensures that when both libraries are built, the files are not generated concurrently by the static and shared library targets. Do the same for the TLS libraries. Signed-off-by: Ronald Cron --- library/CMakeLists.txt | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/library/CMakeLists.txt b/library/CMakeLists.txt index 17bc1478de..d4f3784501 100644 --- a/library/CMakeLists.txt +++ b/library/CMakeLists.txt @@ -187,6 +187,19 @@ if(GEN_FILES) ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/data_files/driver_templates/psa_crypto_driver_wrappers.h.jinja ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/data_files/driver_templates/psa_crypto_driver_wrappers_no_static.c.jinja ) + + add_custom_target(${MBEDTLS_TARGET_PREFIX}mbedcrypto_generated_files_target + DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/error.c + ${CMAKE_CURRENT_BINARY_DIR}/version_features.c + ${CMAKE_CURRENT_BINARY_DIR}/psa_crypto_driver_wrappers.h + ${CMAKE_CURRENT_BINARY_DIR}/psa_crypto_driver_wrappers_no_static.c + ) + + add_custom_target(${MBEDTLS_TARGET_PREFIX}mbedtls_generated_files_target + DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/ssl_debug_helpers_generated.c + ) endif() if(CMAKE_COMPILER_IS_GNUCC) @@ -288,6 +301,13 @@ if(USE_STATIC_MBEDTLS_LIBRARY) add_library(${mbedtls_static_target} STATIC ${src_tls}) set_target_properties(${mbedtls_static_target} PROPERTIES OUTPUT_NAME mbedtls) target_link_libraries(${mbedtls_static_target} PUBLIC ${libs} ${mbedx509_static_target}) + + if(GEN_FILES) + add_dependencies(${mbedcrypto_static_target} + ${MBEDTLS_TARGET_PREFIX}mbedcrypto_generated_files_target) + add_dependencies(${mbedtls_static_target} + ${MBEDTLS_TARGET_PREFIX}mbedtls_generated_files_target) + endif() endif(USE_STATIC_MBEDTLS_LIBRARY) if(USE_SHARED_MBEDTLS_LIBRARY) @@ -311,6 +331,13 @@ if(USE_SHARED_MBEDTLS_LIBRARY) add_library(${mbedtls_target} SHARED ${src_tls}) set_target_properties(${mbedtls_target} PROPERTIES VERSION 3.6.3 SOVERSION 21) target_link_libraries(${mbedtls_target} PUBLIC ${libs} ${mbedx509_target}) + + if(GEN_FILES) + add_dependencies(${mbedcrypto_target} + ${MBEDTLS_TARGET_PREFIX}mbedcrypto_generated_files_target) + add_dependencies(${mbedtls_target} + ${MBEDTLS_TARGET_PREFIX}mbedtls_generated_files_target) + endif() endif(USE_SHARED_MBEDTLS_LIBRARY) foreach(target IN LISTS target_libraries)