Revert "CMake: use sanitizer flags for internal targets only"

This reverts commit 68b1abf77f.

The warnings are valuable and shouldn't be cast aside.
As of 8f509f1, we special case macOS and don't set -fno-sanitize-recover
to allow CI to succeed.
In the future, this could be made stricter again by only suppressing
known bugs, which ideally should also be fixed or reported upstream.
This commit is contained in:
Maximilian Federle 2020-10-24 13:09:00 +02:00
parent da87a68093
commit 24720a0024
4 changed files with 16 additions and 28 deletions

View File

@ -170,19 +170,23 @@ if(ENABLE_SANITIZERS)
endif() endif()
string(REPLACE ";" "," SANITIZE_OPTIONS "${SANITIZE_OPTIONS}") string(REPLACE ";" "," SANITIZE_OPTIONS "${SANITIZE_OPTIONS}")
if (NOT APPLE) if (NOT APPLE)
set(SANITIZE_FLAGS "-O1;-fsanitize=${SANITIZE_OPTIONS};-fno-sanitize-recover=address,undefined") set(SANITIZE_FLAGS "-O1 -fsanitize=${SANITIZE_OPTIONS} -fno-sanitize-recover=address,undefined")
else() else()
set(SANITIZE_FLAGS "-O1;-fsanitize=${SANITIZE_OPTIONS}") set(SANITIZE_FLAGS "-O1 -fsanitize=${SANITIZE_OPTIONS}")
endif() endif()
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
list(APPEND SANITIZE_FLAGS -fno-omit-frame-pointer -fno-optimize-sibling-calls) set(SANITIZE_FLAGS "${SANITIZE_FLAGS} -fno-omit-frame-pointer -fno-optimize-sibling-calls")
elseif(CMAKE_CXX_COMPILER_ID MATCHES "GNU") elseif(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
list(APPEND SANITIZE_FLAGS -fuse-ld=gold) set(SANITIZE_FLAGS "${SANITIZE_FLAGS} -fuse-ld=gold")
else() else()
message(FATAL_ERROR "Sanitizers are only available when using GCC or Clang") message(FATAL_ERROR "Sanitizers are only available when using GCC or Clang")
endif() endif()
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${SANITIZE_FLAGS}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SANITIZE_FLAGS}")
endif() endif()
# common dependencies # common dependencies

View File

@ -1,5 +1,3 @@
add_compile_options(${SANITIZE_FLAGS})
include_directories( include_directories(
${CMAKE_SOURCE_DIR}/include) ${CMAKE_SOURCE_DIR}/include)
@ -7,5 +5,4 @@ add_executable(CDemo
CDemo.c) CDemo.c)
target_link_libraries(CDemo target_link_libraries(CDemo
slvs slvs)
${SANITIZE_FLAGS})

View File

@ -26,10 +26,6 @@ if(APPLE)
${APPKIT_LIBRARY}) ${APPKIT_LIBRARY})
endif() endif()
# sanitizers for all code in src and below
add_compile_options(${SANITIZE_FLAGS})
# libslvs # libslvs
set(libslvs_SOURCES set(libslvs_SOURCES
@ -59,8 +55,7 @@ target_include_directories(slvs
target_link_libraries(slvs target_link_libraries(slvs
${util_LIBRARIES} ${util_LIBRARIES}
mimalloc-static mimalloc-static)
${SANITIZE_FLAGS})
add_dependencies(slvs add_dependencies(slvs
mimalloc-static) mimalloc-static)
@ -230,8 +225,7 @@ target_link_libraries(solvespace-core
${PNG_LIBRARY} ${PNG_LIBRARY}
${FREETYPE_LIBRARY} ${FREETYPE_LIBRARY}
flatbuffers flatbuffers
mimalloc-static mimalloc-static)
${SANITIZE_FLAGS})
if(Backtrace_FOUND) if(Backtrace_FOUND)
target_link_libraries(solvespace-core target_link_libraries(solvespace-core
@ -338,8 +332,7 @@ if(ENABLE_GUI)
solvespace-core solvespace-core
${OPENGL_LIBRARIES} ${OPENGL_LIBRARIES}
${platform_LIBRARIES} ${platform_LIBRARIES}
${COVERAGE_LIBRARY} ${COVERAGE_LIBRARY})
${SANITIZE_FLAGS})
if(MSVC) if(MSVC)
set_target_properties(solvespace PROPERTIES set_target_properties(solvespace PROPERTIES
@ -368,8 +361,7 @@ target_include_directories(solvespace-headless
target_link_libraries(solvespace-headless target_link_libraries(solvespace-headless
solvespace-core solvespace-core
${CAIRO_LIBRARIES} ${CAIRO_LIBRARIES})
${SANITIZE_FLAGS})
target_compile_options(solvespace-headless target_compile_options(solvespace-headless
PRIVATE ${COVERAGE_FLAGS}) PRIVATE ${COVERAGE_FLAGS})
@ -383,8 +375,7 @@ if(ENABLE_CLI)
target_link_libraries(solvespace-cli target_link_libraries(solvespace-cli
solvespace-core solvespace-core
solvespace-headless solvespace-headless)
${SANITIZE_FLAGS})
add_dependencies(solvespace-cli add_dependencies(solvespace-cli
resources) resources)

View File

@ -11,8 +11,6 @@ if(${CMAKE_HOST_SYSTEM_NAME} STREQUAL "Windows")
add_definitions(-DTEST_BUILD_ON_WINDOWS) add_definitions(-DTEST_BUILD_ON_WINDOWS)
endif() endif()
add_compile_options(${SANITIZE_FLAGS})
# test suite # test suite
set(testsuite_SOURCES set(testsuite_SOURCES
@ -76,8 +74,7 @@ add_executable(solvespace-testsuite
target_link_libraries(solvespace-testsuite target_link_libraries(solvespace-testsuite
solvespace-headless solvespace-headless
${COVERAGE_LIBRARY} ${COVERAGE_LIBRARY})
${SANITIZE_FLAGS})
add_dependencies(solvespace-testsuite add_dependencies(solvespace-testsuite
resources) resources)
@ -135,8 +132,7 @@ add_executable(solvespace-debugtool
target_link_libraries(solvespace-debugtool target_link_libraries(solvespace-debugtool
solvespace-core solvespace-core
solvespace-headless solvespace-headless)
${SANITIZE_FLAGS})
add_dependencies(solvespace-debugtool add_dependencies(solvespace-debugtool
resources) resources)