summaryrefslogtreecommitdiff
path: root/fuzzers/CMakeLists.txt
blob: 8cc61b7519a7253f73bbc03992f95197c9d6b76a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
link_directories(${LIBGIT2_LIBDIRS})
include_directories(${LIBGIT2_INCLUDES})
include_directories(SYSTEM ${LIBGIT2_SYSTEM_INCLUDES})

if(BUILD_FUZZERS AND NOT USE_STANDALONE_FUZZERS)
	add_c_flag(-fsanitize=fuzzer)
endif()

file(GLOB SRC_FUZZ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *_fuzzer.c)
foreach(fuzz_target_src ${SRC_FUZZ})
	string(REPLACE ".c" "" fuzz_target_name ${fuzz_target_src})
	string(REPLACE "_fuzzer" "" fuzz_name ${fuzz_target_name})

	set(${fuzz_target_name}_SOURCES ${fuzz_target_src} ${LIBGIT2_OBJECTS})
	if(USE_STANDALONE_FUZZERS)
		list(APPEND ${fuzz_target_name}_SOURCES "standalone_driver.c")
	endif()
	add_executable(${fuzz_target_name} ${${fuzz_target_name}_SOURCES})
	set_target_properties(${fuzz_target_name} PROPERTIES C_STANDARD 90)
	target_link_libraries(${fuzz_target_name} ${LIBGIT2_LIBS})

	add_test(${fuzz_target_name} "${CMAKE_CURRENT_BINARY_DIR}/${fuzz_target_name}" "${CMAKE_CURRENT_SOURCE_DIR}/corpora/${fuzz_name}")
endforeach()