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