mirror of
https://github.com/Mbed-TLS/mbedtls.git
synced 2025-01-29 03:32:39 +00:00
15a42c3e26
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 <manuel.pegourie-gonnard@arm.com>
40 lines
1.4 KiB
CMake
40 lines
1.4 KiB
CMake
set(executables
|
|
crypto_examples
|
|
key_ladder_demo
|
|
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_OBJECTS:mbedtls_test>)
|
|
target_link_libraries(${exe} ${mbedcrypto_target})
|
|
target_include_directories(${exe} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../tests/include)
|
|
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"
|
|
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
|
|
|
|
install(PROGRAMS
|
|
key_ladder_demo.sh
|
|
DESTINATION "bin")
|