| set(libs |
| ${mbedtls_target} |
| ${CMAKE_THREAD_LIBS_INIT} |
| ) |
| |
| find_library(FUZZINGENGINE_LIB FuzzingEngine) |
| if(FUZZINGENGINE_LIB) |
| project(fuzz CXX) |
| endif() |
| |
| set(executables_no_common_c |
| fuzz_pubkey |
| fuzz_x509crl |
| fuzz_x509crt |
| fuzz_x509csr |
| fuzz_pkcs7 |
| ) |
| |
| set(executables_with_common_c |
| fuzz_privkey |
| fuzz_client |
| fuzz_dtlsclient |
| fuzz_dtlsserver |
| fuzz_server |
| ) |
| |
| foreach(exe IN LISTS executables_no_common_c executables_with_common_c) |
| |
| set(exe_sources ${exe}.c $<TARGET_OBJECTS:mbedtls_test>) |
| if(NOT FUZZINGENGINE_LIB) |
| list(APPEND exe_sources onefile.c) |
| endif() |
| |
| # This emulates "if ( ... IN_LIST ... )" which becomes available in CMake 3.3 |
| list(FIND executables_with_common_c ${exe} exe_index) |
| if(${exe_index} GREATER -1) |
| list(APPEND exe_sources common.c) |
| endif() |
| |
| add_executable(${exe} ${exe_sources}) |
| target_include_directories(${exe} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../tests/include) |
| |
| if (NOT FUZZINGENGINE_LIB) |
| target_link_libraries(${exe} ${libs}) |
| else() |
| target_link_libraries(${exe} ${libs} FuzzingEngine) |
| SET_TARGET_PROPERTIES(${exe} PROPERTIES LINKER_LANGUAGE CXX) |
| endif() |
| |
| endforeach() |