]>
Commit | Line | Data |
---|---|---|
e579e0f7 MB |
1 | if(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) | |
6 | endif() | |
ac3d33df | 7 | |
e579e0f7 MB |
8 | file(GLOB SRC_FUZZERS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *_fuzzer.c) |
9 | foreach(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}") | |
26 | endforeach() |