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