cmake: move fuzzer args to the fuzzer's cmake
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
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)