xref: /aosp_15_r20/external/mbedtls/programs/ssl/CMakeLists.txt (revision 62c56f9862f102b96d72393aff6076c951fb8148)
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