1a8e1175bSopenharmony_ciset(libs
2a8e1175bSopenharmony_ci    ${mbedtls_target}
3a8e1175bSopenharmony_ci    ${CMAKE_THREAD_LIBS_INIT}
4a8e1175bSopenharmony_ci)
5a8e1175bSopenharmony_ci
6a8e1175bSopenharmony_cifind_library(FUZZINGENGINE_LIB FuzzingEngine)
7a8e1175bSopenharmony_ciif(FUZZINGENGINE_LIB)
8a8e1175bSopenharmony_ci    project(fuzz CXX)
9a8e1175bSopenharmony_ciendif()
10a8e1175bSopenharmony_ci
11a8e1175bSopenharmony_ciset(executables_no_common_c
12a8e1175bSopenharmony_ci    fuzz_pubkey
13a8e1175bSopenharmony_ci    fuzz_x509crl
14a8e1175bSopenharmony_ci    fuzz_x509crt
15a8e1175bSopenharmony_ci    fuzz_x509csr
16a8e1175bSopenharmony_ci    fuzz_pkcs7
17a8e1175bSopenharmony_ci)
18a8e1175bSopenharmony_ci
19a8e1175bSopenharmony_ciset(executables_with_common_c
20a8e1175bSopenharmony_ci    fuzz_privkey
21a8e1175bSopenharmony_ci    fuzz_client
22a8e1175bSopenharmony_ci    fuzz_dtlsclient
23a8e1175bSopenharmony_ci    fuzz_dtlsserver
24a8e1175bSopenharmony_ci    fuzz_server
25a8e1175bSopenharmony_ci)
26a8e1175bSopenharmony_ci
27a8e1175bSopenharmony_ciforeach(exe IN LISTS executables_no_common_c executables_with_common_c)
28a8e1175bSopenharmony_ci
29a8e1175bSopenharmony_ci    set(exe_sources ${exe}.c $<TARGET_OBJECTS:mbedtls_test>)
30a8e1175bSopenharmony_ci    if(NOT FUZZINGENGINE_LIB)
31a8e1175bSopenharmony_ci        list(APPEND exe_sources onefile.c)
32a8e1175bSopenharmony_ci    endif()
33a8e1175bSopenharmony_ci
34a8e1175bSopenharmony_ci    # This emulates "if ( ... IN_LIST ... )" which becomes available in CMake 3.3
35a8e1175bSopenharmony_ci    list(FIND executables_with_common_c ${exe} exe_index)
36a8e1175bSopenharmony_ci    if(${exe_index} GREATER -1)
37a8e1175bSopenharmony_ci        list(APPEND exe_sources common.c)
38a8e1175bSopenharmony_ci    endif()
39a8e1175bSopenharmony_ci
40a8e1175bSopenharmony_ci    add_executable(${exe} ${exe_sources})
41a8e1175bSopenharmony_ci    target_include_directories(${exe} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../tests/include)
42a8e1175bSopenharmony_ci
43a8e1175bSopenharmony_ci    if (NOT FUZZINGENGINE_LIB)
44a8e1175bSopenharmony_ci        target_link_libraries(${exe} ${libs})
45a8e1175bSopenharmony_ci    else()
46a8e1175bSopenharmony_ci        target_link_libraries(${exe} ${libs} FuzzingEngine)
47a8e1175bSopenharmony_ci        SET_TARGET_PROPERTIES(${exe} PROPERTIES LINKER_LANGUAGE CXX)
48a8e1175bSopenharmony_ci    endif()
49a8e1175bSopenharmony_ci
50a8e1175bSopenharmony_ciendforeach()
51