CMake: Handle building fuzzer with sanitizers

If any of the `CPPDAP_?SAN` sanitizers are enabled, then the build would fail as the compile flags would collide with hard-coded use of address sanitizer for the fuzzer.

Don't hard code address sanitizer for the fuzzer - just use the CMake flag options.
This commit is contained in:
Ben Clayton 2020-06-08 18:25:29 +01:00
parent 13c9e7d465
commit 78dd3ab57a

View File

@ -235,8 +235,19 @@ if(CPPDAP_BUILD_FUZZER)
${CMAKE_CURRENT_SOURCE_DIR}/fuzz/fuzz.cpp
)
add_executable(cppdap-fuzzer ${DAP_FUZZER_LIST})
if(CPPDAP_ASAN)
target_compile_options(cppdap-fuzzer PUBLIC "-fsanitize=fuzzer,address")
target_link_libraries(cppdap-fuzzer "-fsanitize=fuzzer,address")
elseif(CPPDAP_MSAN)
target_compile_options(cppdap-fuzzer PUBLIC "-fsanitize=fuzzer,memory")
target_link_libraries(cppdap-fuzzer "-fsanitize=fuzzer,memory")
elseif(CPPDAP_TSAN)
target_compile_options(cppdap-fuzzer PUBLIC "-fsanitize=fuzzer,thread")
target_link_libraries(cppdap-fuzzer "-fsanitize=fuzzer,thread")
else()
target_compile_options(cppdap-fuzzer PUBLIC "-fsanitize=fuzzer")
target_link_libraries(cppdap-fuzzer "-fsanitize=fuzzer")
endif()
target_include_directories(cppdap-fuzzer PUBLIC
${CPPDAP_INCLUDE_DIR}
${CPPDAP_SRC_DIR}