Paul Bakker | b06819b | 2011-01-18 16:18:38 +0000 | [diff] [blame] | 1 | set(libs |
Raef Coles | 995c66f | 2020-10-13 16:30:41 +0100 | [diff] [blame] | 2 | ${mbedtls_target} |
Paul Bakker | b06819b | 2011-01-18 16:18:38 +0000 | [diff] [blame] | 3 | ) |
| 4 | |
Ronald Cron | bfd45f1 | 2020-06-05 11:15:31 +0200 | [diff] [blame] | 5 | set(executables_libs |
Gilles Peskine | 33406b6 | 2023-11-02 18:48:39 +0100 | [diff] [blame] | 6 | metatest |
Ronald Cron | 6924564 | 2024-11-12 18:14:23 +0100 | [diff] [blame] | 7 | query_compile_time_config |
Gilles Peskine | df6e84a | 2023-02-22 22:09:51 +0100 | [diff] [blame] | 8 | query_included_headers |
Ronald Cron | bfd45f1 | 2020-06-05 11:15:31 +0200 | [diff] [blame] | 9 | selftest |
| 10 | udp_proxy |
| 11 | ) |
Gilles Peskine | 5dab92e | 2024-09-14 12:13:16 +0200 | [diff] [blame] | 12 | add_dependencies(${programs_target} ${executables_libs}) |
Gilles Peskine | b630648 | 2024-09-14 12:18:00 +0200 | [diff] [blame] | 13 | add_dependencies(${ssl_opt_target} udp_proxy) |
Paul Bakker | 367dae4 | 2009-06-28 21:50:27 +0000 | [diff] [blame] | 14 | |
Ronald Cron | bfd45f1 | 2020-06-05 11:15:31 +0200 | [diff] [blame] | 15 | set(executables_mbedcrypto |
Ronald Cron | bfd45f1 | 2020-06-05 11:15:31 +0200 | [diff] [blame] | 16 | zeroize |
| 17 | ) |
Gilles Peskine | 5dab92e | 2024-09-14 12:13:16 +0200 | [diff] [blame] | 18 | add_dependencies(${programs_target} ${executables_mbedcrypto}) |
Gilles Peskine | b630648 | 2024-09-14 12:18:00 +0200 | [diff] [blame] | 19 | add_dependencies(${ssl_opt_target} query_compile_time_config) |
Paul Bakker | 367dae4 | 2009-06-28 21:50:27 +0000 | [diff] [blame] | 20 | |
Andrzej Kurek | 0211c32 | 2018-03-15 05:16:24 -0400 | [diff] [blame] | 21 | if(TEST_CPP) |
Gilles Peskine | 03ab544 | 2021-07-09 15:19:28 +0200 | [diff] [blame] | 22 | set(cpp_dummy_build_cpp "${CMAKE_CURRENT_BINARY_DIR}/cpp_dummy_build.cpp") |
| 23 | set(generate_cpp_dummy_build "${CMAKE_CURRENT_SOURCE_DIR}/generate_cpp_dummy_build.sh") |
| 24 | add_custom_command( |
| 25 | OUTPUT "${cpp_dummy_build_cpp}" |
| 26 | COMMAND "${generate_cpp_dummy_build}" "${cpp_dummy_build_cpp}" |
| 27 | DEPENDS "${generate_cpp_dummy_build}" |
| 28 | WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" |
| 29 | ) |
| 30 | add_executable(cpp_dummy_build "${cpp_dummy_build_cpp}") |
Ronald Cron | b247898 | 2024-10-07 16:17:07 +0200 | [diff] [blame] | 31 | set_base_compile_options(cpp_dummy_build) |
Ronald Cron | c7e9e36 | 2024-06-10 09:41:49 +0200 | [diff] [blame] | 32 | target_include_directories(cpp_dummy_build |
| 33 | PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../include |
Ronald Cron | 3d817ad | 2024-06-14 08:43:28 +0200 | [diff] [blame] | 34 | PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../tf-psa-crypto/include |
| 35 | PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../tf-psa-crypto/drivers/builtin/include) |
Ronald Cron | b7d0e52 | 2024-10-25 16:01:14 +0200 | [diff] [blame] | 36 | target_link_libraries(cpp_dummy_build ${tfpsacrypto_target} ${CMAKE_THREAD_LIBS_INIT}) |
Andrzej Kurek | 0211c32 | 2018-03-15 05:16:24 -0400 | [diff] [blame] | 37 | endif() |
| 38 | |
Gilles Peskine | f80a029 | 2021-11-04 15:18:00 +0100 | [diff] [blame] | 39 | if(USE_SHARED_MBEDTLS_LIBRARY AND |
| 40 | NOT ${CMAKE_SYSTEM_NAME} MATCHES "[Ww][Ii][Nn]") |
Gilles Peskine | a7c247e | 2021-11-04 12:45:19 +0100 | [diff] [blame] | 41 | add_executable(dlopen "dlopen.c") |
Ronald Cron | b247898 | 2024-10-07 16:17:07 +0200 | [diff] [blame] | 42 | set_base_compile_options(dlopen) |
Ronald Cron | c7e9e36 | 2024-06-10 09:41:49 +0200 | [diff] [blame] | 43 | target_include_directories(dlopen |
| 44 | PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../include |
Ronald Cron | 3d817ad | 2024-06-14 08:43:28 +0200 | [diff] [blame] | 45 | PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../tf-psa-crypto/include |
| 46 | PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../tf-psa-crypto/drivers/builtin/include) |
Gilles Peskine | 88e3e70 | 2021-11-10 19:10:27 +0100 | [diff] [blame] | 47 | target_link_libraries(dlopen ${CMAKE_DL_LIBS}) |
Gilles Peskine | a7c247e | 2021-11-04 12:45:19 +0100 | [diff] [blame] | 48 | endif() |
| 49 | |
David Horstmann | a8d1406 | 2021-10-20 17:14:23 +0100 | [diff] [blame] | 50 | if(GEN_FILES) |
Manuel Pégourié-Gonnard | e90e405 | 2021-09-08 13:27:09 +0200 | [diff] [blame] | 51 | find_package(Perl REQUIRED) |
Manuel Pégourié-Gonnard | 86cfa6c | 2021-05-14 10:07:33 +0200 | [diff] [blame] | 52 | |
Manuel Pégourié-Gonnard | e90e405 | 2021-09-08 13:27:09 +0200 | [diff] [blame] | 53 | add_custom_command( |
| 54 | OUTPUT |
| 55 | ${CMAKE_CURRENT_BINARY_DIR}/query_config.c |
| 56 | COMMAND |
| 57 | ${PERL} |
| 58 | ${CMAKE_CURRENT_SOURCE_DIR}/../../scripts/generate_query_config.pl |
| 59 | ${CMAKE_CURRENT_SOURCE_DIR}/../../include/mbedtls/mbedtls_config.h |
Ronald Cron | c7e9e36 | 2024-06-10 09:41:49 +0200 | [diff] [blame] | 60 | ${CMAKE_CURRENT_SOURCE_DIR}/../../tf-psa-crypto/include/psa/crypto_config.h |
Manuel Pégourié-Gonnard | e90e405 | 2021-09-08 13:27:09 +0200 | [diff] [blame] | 61 | ${CMAKE_CURRENT_SOURCE_DIR}/../../scripts/data_files/query_config.fmt |
| 62 | ${CMAKE_CURRENT_BINARY_DIR}/query_config.c |
| 63 | DEPENDS |
Manuel Pégourié-Gonnard | 86cfa6c | 2021-05-14 10:07:33 +0200 | [diff] [blame] | 64 | ${CMAKE_CURRENT_SOURCE_DIR}/../../scripts/generate_query_config.pl |
| 65 | ${CMAKE_CURRENT_SOURCE_DIR}/../../include/mbedtls/mbedtls_config.h |
Ronald Cron | c7e9e36 | 2024-06-10 09:41:49 +0200 | [diff] [blame] | 66 | ${CMAKE_CURRENT_SOURCE_DIR}/../../tf-psa-crypto/include/psa/crypto_config.h |
Manuel Pégourié-Gonnard | 86cfa6c | 2021-05-14 10:07:33 +0200 | [diff] [blame] | 67 | ${CMAKE_CURRENT_SOURCE_DIR}/../../scripts/data_files/query_config.fmt |
Manuel Pégourié-Gonnard | e90e405 | 2021-09-08 13:27:09 +0200 | [diff] [blame] | 68 | ) |
David Horstmann | d64f4b2 | 2021-10-20 12:29:47 +0100 | [diff] [blame] | 69 | # this file will also be used in another directory, so create a target, see |
Manuel Pégourié-Gonnard | e90e405 | 2021-09-08 13:27:09 +0200 | [diff] [blame] | 70 | # https://gitlab.kitware.com/cmake/community/-/wikis/FAQ#how-can-i-add-a-dependency-to-a-source-file-which-is-generated-in-a-subdirectory |
| 71 | add_custom_target(generate_query_config_c |
| 72 | DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/query_config.c) |
| 73 | else() |
| 74 | link_to_source(query_config.c) |
| 75 | endif() |
Manuel Pégourié-Gonnard | 86cfa6c | 2021-05-14 10:07:33 +0200 | [diff] [blame] | 76 | |
Ronald Cron | bfd45f1 | 2020-06-05 11:15:31 +0200 | [diff] [blame] | 77 | foreach(exe IN LISTS executables_libs executables_mbedcrypto) |
Harry Ramsey | 53ba6ad | 2025-02-12 10:18:51 +0000 | [diff] [blame] | 78 | set(source ${exe}.c) |
David Brown | a8e309e | 2020-11-18 15:07:24 -0700 | [diff] [blame] | 79 | set(extra_sources "") |
Harry Ramsey | 53ba6ad | 2025-02-12 10:18:51 +0000 | [diff] [blame] | 80 | if(NOT EXISTS ${source} AND |
| 81 | EXISTS ${MBEDTLS_FRAMEWORK_DIR}/tests/programs/${source}) |
| 82 | set(source ${MBEDTLS_FRAMEWORK_DIR}/tests/programs/${source}) |
| 83 | endif() |
| 84 | |
David Brown | a8e309e | 2020-11-18 15:07:24 -0700 | [diff] [blame] | 85 | if(exe STREQUAL "query_compile_time_config") |
| 86 | list(APPEND extra_sources |
Harry Ramsey | 53ba6ad | 2025-02-12 10:18:51 +0000 | [diff] [blame] | 87 | ${MBEDTLS_FRAMEWORK_DIR}/tests/programs/query_config.h |
Manuel Pégourié-Gonnard | 86cfa6c | 2021-05-14 10:07:33 +0200 | [diff] [blame] | 88 | ${CMAKE_CURRENT_BINARY_DIR}/query_config.c) |
David Brown | a8e309e | 2020-11-18 15:07:24 -0700 | [diff] [blame] | 89 | endif() |
Harry Ramsey | 53ba6ad | 2025-02-12 10:18:51 +0000 | [diff] [blame] | 90 | add_executable(${exe} ${source} $<TARGET_OBJECTS:mbedtls_test> |
David Brown | a8e309e | 2020-11-18 15:07:24 -0700 | [diff] [blame] | 91 | ${extra_sources}) |
Ronald Cron | b247898 | 2024-10-07 16:17:07 +0200 | [diff] [blame] | 92 | set_base_compile_options(${exe}) |
Ronald Cron | c29afb6 | 2024-07-01 14:50:54 +0200 | [diff] [blame] | 93 | target_include_directories(${exe} |
Harry Ramsey | 53ba6ad | 2025-02-12 10:18:51 +0000 | [diff] [blame] | 94 | PRIVATE ${MBEDTLS_FRAMEWORK_DIR}/tests/include |
| 95 | ${MBEDTLS_FRAMEWORK_DIR}/tests/programs) |
Ronald Cron | c29afb6 | 2024-07-01 14:50:54 +0200 | [diff] [blame] | 96 | target_include_directories(${exe} |
| 97 | PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../library |
| 98 | ${CMAKE_CURRENT_SOURCE_DIR}/../../tf-psa-crypto/core) |
Manuel Pégourié-Gonnard | 86cfa6c | 2021-05-14 10:07:33 +0200 | [diff] [blame] | 99 | if(exe STREQUAL "query_compile_time_config") |
| 100 | target_include_directories(${exe} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) |
| 101 | endif() |
Manuel Pégourié-Gonnard | cb4137b | 2014-09-04 14:55:28 +0200 | [diff] [blame] | 102 | |
David Horstmann | c2ab398 | 2024-01-17 12:25:19 +0000 | [diff] [blame] | 103 | # Request C11, required for memory poisoning |
| 104 | set_target_properties(${exe} PROPERTIES C_STANDARD 11) |
| 105 | |
Ronald Cron | bfd45f1 | 2020-06-05 11:15:31 +0200 | [diff] [blame] | 106 | # This emulates "if ( ... IN_LIST ... )" which becomes available in CMake 3.3 |
| 107 | list(FIND executables_libs ${exe} exe_index) |
| 108 | if (${exe_index} GREATER -1) |
Paul Elliott | 4068c7e | 2023-12-15 17:14:34 +0000 | [diff] [blame] | 109 | target_link_libraries(${exe} ${libs} ${CMAKE_THREAD_LIBS_INIT}) |
Ronald Cron | bfd45f1 | 2020-06-05 11:15:31 +0200 | [diff] [blame] | 110 | else() |
Ronald Cron | b7d0e52 | 2024-10-25 16:01:14 +0200 | [diff] [blame] | 111 | target_link_libraries(${exe} ${tfpsacrypto_target} ${CMAKE_THREAD_LIBS_INIT}) |
Ronald Cron | bfd45f1 | 2020-06-05 11:15:31 +0200 | [diff] [blame] | 112 | endif() |
| 113 | endforeach() |
Andres Amaya Garcia | 5ab74a1 | 2017-10-24 21:10:45 +0100 | [diff] [blame] | 114 | |
Ronald Cron | bfd45f1 | 2020-06-05 11:15:31 +0200 | [diff] [blame] | 115 | install(TARGETS ${executables_libs} ${executables_mbedcrypto} |
Paul Bakker | 547f73d | 2011-01-05 15:07:54 +0000 | [diff] [blame] | 116 | DESTINATION "bin" |
| 117 | PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) |