Revert "CMake: use sanitizer flags for internal targets only"
This reverts commit68b1abf77f
. The warnings are valuable and shouldn't be cast aside. As of8f509f1
, 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:
parent
da87a68093
commit
24720a0024
@ -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
|
||||||
|
@ -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})
|
|
||||||
|
@ -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)
|
||||||
|
@ -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)
|
||||||
|
Loading…
Reference in New Issue
Block a user