Commit 4d2a6839dc5b020b26ab8209952d95411eb34da5

Edward Thomson 2021-11-06T16:38:57

cmake: move fuzzer args to the fuzzer's cmake

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4650659..5421bd7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -113,14 +113,6 @@ else()
 	# that uses CMAKE_CONFIGURATION_TYPES and not CMAKE_BUILD_TYPE
 endif()
 
-IF(BUILD_FUZZERS AND NOT USE_STANDALONE_FUZZERS)
-	# The actual sanitizer link target will be added when linking the fuzz
-	# targets.
-	set(CMAKE_REQUIRED_FLAGS "-fsanitize=fuzzer-no-link")
-	add_c_flag(-fsanitize=fuzzer-no-link)
-	unset(CMAKE_REQUIRED_FLAGS)
-endif()
-
 #
 # Subdirectories
 #
@@ -137,13 +129,8 @@ if(BUILD_EXAMPLES)
 endif()
 
 if(BUILD_FUZZERS)
-	if(NOT USE_STANDALONE_FUZZERS)
-		if(BUILD_EXAMPLES)
-			message(FATAL_ERROR "Cannot build the fuzzer targets and the examples together")
-		endif()
-		if(BUILD_TESTS)
-			message(FATAL_ERROR "Cannot build the fuzzer targets and the tests together")
-		endif()
+	if((BUILD_TESTS OR BUILD_EXAMPLES) AND NOT USE_STANDALONE_FUZZERS)
+		message(FATAL_ERROR "Cannot build the fuzzer and the tests or examples together")
 	endif()
 	add_subdirectory(fuzzers)
 endif()
diff --git a/fuzzers/CMakeLists.txt b/fuzzers/CMakeLists.txt
index 8cc61b7..1479a2a 100644
--- a/fuzzers/CMakeLists.txt
+++ b/fuzzers/CMakeLists.txt
@@ -3,7 +3,10 @@ include_directories(${LIBGIT2_INCLUDES})
 include_directories(SYSTEM ${LIBGIT2_SYSTEM_INCLUDES})
 
 if(BUILD_FUZZERS AND NOT USE_STANDALONE_FUZZERS)
+	set(CMAKE_REQUIRED_FLAGS "-fsanitize=fuzzer-no-link")
 	add_c_flag(-fsanitize=fuzzer)
+	add_c_flag(-fsanitize=fuzzer-no-link)
+	unset(CMAKE_REQUIRED_FLAGS)
 endif()
 
 file(GLOB SRC_FUZZ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *_fuzzer.c)