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