]> git.proxmox.com Git - libgit2.git/blame - fuzzers/CMakeLists.txt
New upstream version 1.4.3+dfsg.1
[libgit2.git] / fuzzers / CMakeLists.txt
CommitLineData
e579e0f7
MB
1if(BUILD_FUZZERS AND NOT USE_STANDALONE_FUZZERS)
2 set(CMAKE_REQUIRED_FLAGS "-fsanitize=fuzzer-no-link")
3 add_c_flag(-fsanitize=fuzzer)
4 add_c_flag(-fsanitize=fuzzer-no-link)
5 unset(CMAKE_REQUIRED_FLAGS)
6endif()
ac3d33df 7
e579e0f7
MB
8file(GLOB SRC_FUZZERS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *_fuzzer.c)
9foreach(fuzz_target_src ${SRC_FUZZERS})
10 string(REPLACE ".c" "" fuzz_target_name ${fuzz_target_src})
11 string(REPLACE "_fuzzer" "" fuzz_name ${fuzz_target_name})
ac3d33df 12
e579e0f7
MB
13 set(${fuzz_target_name}_SOURCES ${fuzz_target_src} ${LIBGIT2_OBJECTS})
14 if(USE_STANDALONE_FUZZERS)
15 list(APPEND ${fuzz_target_name}_SOURCES "standalone_driver.c")
16 endif()
17 add_executable(${fuzz_target_name} ${${fuzz_target_name}_SOURCES})
18 set_target_properties(${fuzz_target_name} PROPERTIES C_STANDARD 90)
22a2d3d5 19
e579e0f7
MB
20 target_include_directories(${fuzz_target_name} PRIVATE ${LIBGIT2_INCLUDES} ${LIBGIT2_DEPENDENCY_INCLUDES})
21 target_include_directories(${fuzz_target_name} SYSTEM PRIVATE ${LIBGIT2_SYSTEM_INCLUDES})
22a2d3d5 22
e579e0f7
MB
23 target_link_libraries(${fuzz_target_name} ${LIBGIT2_SYSTEM_LIBS})
24
25 add_test(${fuzz_target_name} "${CMAKE_CURRENT_BINARY_DIR}/${fuzz_target_name}" "${CMAKE_CURRENT_SOURCE_DIR}/corpora/${fuzz_name}")
26endforeach()