1*62c56f98SSadaf Ebrahimiset(THREADS_USE_PTHREADS_WIN32 true) 2*62c56f98SSadaf Ebrahimifind_package(Threads) 3*62c56f98SSadaf Ebrahimi 4*62c56f98SSadaf Ebrahimiset(libs 5*62c56f98SSadaf Ebrahimi ${mbedtls_target} 6*62c56f98SSadaf Ebrahimi) 7*62c56f98SSadaf Ebrahimi 8*62c56f98SSadaf Ebrahimiset(executables 9*62c56f98SSadaf Ebrahimi dtls_client 10*62c56f98SSadaf Ebrahimi dtls_server 11*62c56f98SSadaf Ebrahimi mini_client 12*62c56f98SSadaf Ebrahimi ssl_client1 13*62c56f98SSadaf Ebrahimi ssl_client2 14*62c56f98SSadaf Ebrahimi ssl_context_info 15*62c56f98SSadaf Ebrahimi ssl_fork_server 16*62c56f98SSadaf Ebrahimi ssl_mail_client 17*62c56f98SSadaf Ebrahimi ssl_server 18*62c56f98SSadaf Ebrahimi ssl_server2 19*62c56f98SSadaf Ebrahimi) 20*62c56f98SSadaf Ebrahimi 21*62c56f98SSadaf Ebrahimiif(GEN_FILES) 22*62c56f98SSadaf Ebrahimi # Inform CMake that the following file will be generated as part of the build 23*62c56f98SSadaf Ebrahimi # process, so it doesn't complain that it doesn't exist yet. Starting from 24*62c56f98SSadaf Ebrahimi # CMake 3.20, this will no longer be necessary as CMake will automatically 25*62c56f98SSadaf Ebrahimi # propagate this information across the tree, for now it's only visible 26*62c56f98SSadaf Ebrahimi # inside the same directory, so we need to propagate manually. 27*62c56f98SSadaf Ebrahimi set_source_files_properties( 28*62c56f98SSadaf Ebrahimi ${CMAKE_CURRENT_BINARY_DIR}/../test/query_config.c 29*62c56f98SSadaf Ebrahimi PROPERTIES GENERATED TRUE) 30*62c56f98SSadaf Ebrahimiendif() 31*62c56f98SSadaf Ebrahimi 32*62c56f98SSadaf Ebrahimiforeach(exe IN LISTS executables) 33*62c56f98SSadaf Ebrahimi set(extra_sources "") 34*62c56f98SSadaf Ebrahimi if(exe STREQUAL "ssl_client2" OR exe STREQUAL "ssl_server2") 35*62c56f98SSadaf Ebrahimi list(APPEND extra_sources 36*62c56f98SSadaf Ebrahimi ssl_test_lib.c 37*62c56f98SSadaf Ebrahimi ${CMAKE_CURRENT_SOURCE_DIR}/../test/query_config.h 38*62c56f98SSadaf Ebrahimi ${CMAKE_CURRENT_BINARY_DIR}/../test/query_config.c) 39*62c56f98SSadaf Ebrahimi endif() 40*62c56f98SSadaf Ebrahimi add_executable(${exe} ${exe}.c $<TARGET_OBJECTS:mbedtls_test> 41*62c56f98SSadaf Ebrahimi ${extra_sources}) 42*62c56f98SSadaf Ebrahimi target_link_libraries(${exe} ${libs}) 43*62c56f98SSadaf Ebrahimi target_include_directories(${exe} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../tests/include) 44*62c56f98SSadaf Ebrahimi if(exe STREQUAL "ssl_client2" OR exe STREQUAL "ssl_server2") 45*62c56f98SSadaf Ebrahimi if(GEN_FILES) 46*62c56f98SSadaf Ebrahimi add_dependencies(${exe} generate_query_config_c) 47*62c56f98SSadaf Ebrahimi endif() 48*62c56f98SSadaf Ebrahimi target_include_directories(${exe} 49*62c56f98SSadaf Ebrahimi PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../test) 50*62c56f98SSadaf Ebrahimi endif() 51*62c56f98SSadaf Ebrahimiendforeach() 52*62c56f98SSadaf Ebrahimi 53*62c56f98SSadaf Ebrahimiif(THREADS_FOUND) 54*62c56f98SSadaf Ebrahimi add_executable(ssl_pthread_server ssl_pthread_server.c $<TARGET_OBJECTS:mbedtls_test>) 55*62c56f98SSadaf Ebrahimi target_include_directories(ssl_pthread_server PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../tests/include) 56*62c56f98SSadaf Ebrahimi target_link_libraries(ssl_pthread_server ${libs} ${CMAKE_THREAD_LIBS_INIT}) 57*62c56f98SSadaf Ebrahimi list(APPEND executables ssl_pthread_server) 58*62c56f98SSadaf Ebrahimiendif(THREADS_FOUND) 59*62c56f98SSadaf Ebrahimi 60*62c56f98SSadaf Ebrahimiinstall(TARGETS ${executables} 61*62c56f98SSadaf Ebrahimi DESTINATION "bin" 62*62c56f98SSadaf Ebrahimi PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) 63