mirror of
https://github.com/Mbed-TLS/mbedtls.git
synced 2025-01-26 03:35:35 +00:00
86cfa6c27f
This one was trickier for two reasons: 1. It's used from another directory, see https://gitlab.kitware.com/cmake/community/-/wikis/FAQ#how-can-i-add-a-dependency-to-a-source-file-which-is-generated-in-a-subdirectory 2. The C file being generated after CMake is run means CMake can't automatically scan for included headers and do its usual magic, so we need to declare the dependency and more importantly the include path. Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
59 lines
2.0 KiB
CMake
59 lines
2.0 KiB
CMake
set(THREADS_USE_PTHREADS_WIN32 true)
|
|
find_package(Threads)
|
|
|
|
set(libs
|
|
${mbedtls_target}
|
|
)
|
|
|
|
set(executables
|
|
dtls_client
|
|
dtls_server
|
|
mini_client
|
|
ssl_client1
|
|
ssl_client2
|
|
ssl_context_info
|
|
ssl_fork_server
|
|
ssl_mail_client
|
|
ssl_server
|
|
ssl_server2
|
|
)
|
|
|
|
# Inform CMake the the following file will be generated as part of the build
|
|
# process, so it doesn't complain that it doesn't exist yet. Starting from
|
|
# CMake 3.20, this will no longer be necessary as CMake will automatically
|
|
# propagate this information accross the tree, for now it's only visible
|
|
# inside the same directory, so we need to propagate manually.
|
|
set_source_files_properties(
|
|
${CMAKE_CURRENT_BINARY_DIR}/../test/query_config.c
|
|
PROPERTIES GENERATED TRUE)
|
|
|
|
foreach(exe IN LISTS executables)
|
|
set(extra_sources "")
|
|
if(exe STREQUAL "ssl_client2" OR exe STREQUAL "ssl_server2")
|
|
list(APPEND extra_sources
|
|
ssl_test_lib.c
|
|
${CMAKE_CURRENT_SOURCE_DIR}/../test/query_config.h
|
|
${CMAKE_CURRENT_BINARY_DIR}/../test/query_config.c)
|
|
endif()
|
|
add_executable(${exe} ${exe}.c $<TARGET_OBJECTS:mbedtls_test>
|
|
${extra_sources})
|
|
target_link_libraries(${exe} ${libs})
|
|
target_include_directories(${exe} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../tests/include)
|
|
if(exe STREQUAL "ssl_client2" OR exe STREQUAL "ssl_server2")
|
|
add_dependencies(${exe} generate_query_config_c)
|
|
target_include_directories(${exe}
|
|
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../test)
|
|
endif()
|
|
endforeach()
|
|
|
|
if(THREADS_FOUND)
|
|
add_executable(ssl_pthread_server ssl_pthread_server.c $<TARGET_OBJECTS:mbedtls_test>)
|
|
target_include_directories(ssl_pthread_server PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../tests/include)
|
|
target_link_libraries(ssl_pthread_server ${libs} ${CMAKE_THREAD_LIBS_INIT})
|
|
list(APPEND executables ssl_pthread_server)
|
|
endif(THREADS_FOUND)
|
|
|
|
install(TARGETS ${executables}
|
|
DESTINATION "bin"
|
|
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
|