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 <ronald.cron@arm.com>
diff --git a/library/CMakeLists.txt b/library/CMakeLists.txt
index 17bc147..d4f3784 100644
--- a/library/CMakeLists.txt
+++ b/library/CMakeLists.txt
@@ -187,6 +187,19 @@
${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 @@
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 @@
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)