From 15a42c3e2615c3e47069a63eb6e8b19551cfa2fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Fri, 14 May 2021 10:33:32 +0200 Subject: [PATCH] Allow CMake to generate psa_constant_names_generated.c MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This one's a bit funny too as the generated file is not a source to the executable (ie, it's not passed as an argument to the compiler), so CMake's dependency resolution didn't work even though the file is in the same directory. For some reason, the following didn't work either: add_dependencies(psa_constant_names ${CMAKE_CURRENT_BINARY_DIR}/psa_constant_names_generated.c) So, apply the same strategy as for cross-directory use of a generated file by creating a target and using it as a dependency. Signed-off-by: Manuel Pégourié-Gonnard --- programs/psa/CMakeLists.txt | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/programs/psa/CMakeLists.txt b/programs/psa/CMakeLists.txt index 23e85fea75..01bd687826 100644 --- a/programs/psa/CMakeLists.txt +++ b/programs/psa/CMakeLists.txt @@ -4,6 +4,21 @@ set(executables psa_constant_names ) +add_custom_command( + OUTPUT + ${CMAKE_CURRENT_BINARY_DIR}/psa_constant_names_generated.c + COMMAND + ${PYTHON} + ${CMAKE_CURRENT_SOURCE_DIR}/../../scripts/generate_psa_constants.py + ${CMAKE_CURRENT_BINARY_DIR} + WORKING_DIRECTORY + ${CMAKE_CURRENT_SOURCE_DIR}/../.. + DEPENDS + ${CMAKE_CURRENT_SOURCE_DIR}/../../scripts/generate_psa_constants.py + ${CMAKE_CURRENT_SOURCE_DIR}/../../include/psa/crypto_values.h + ${CMAKE_CURRENT_SOURCE_DIR}/../../include/psa/crypto_extra.h +) + foreach(exe IN LISTS executables) add_executable(${exe} ${exe}.c $) target_link_libraries(${exe} ${mbedcrypto_target}) @@ -11,6 +26,9 @@ foreach(exe IN LISTS executables) endforeach() target_include_directories(psa_constant_names PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) +add_custom_target(generate_psa_constant_names_generated_c + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/psa_constant_names_generated.c) +add_dependencies(psa_constant_names generate_psa_constant_names_generated_c) install(TARGETS ${executables} DESTINATION "bin"