[cpp] Support sanitizers again

This commit is contained in:
Mario Zechner 2025-07-26 01:26:39 +02:00
parent 9b778bc508
commit cfcca956fa

View File

@ -46,22 +46,25 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
endif() endif()
# Configure no-cpprt linking for different platforms # Configure no-cpprt linking for different platforms
add_executable(headless-test-no-cpprt ${CMAKE_CURRENT_SOURCE_DIR}/tests/HeadlessTest.cpp) # No-cpprt variant (not compatible with sanitizers)
target_link_libraries(headless-test-no-cpprt spine-cpp-no-cpprt) if(NOT SPINE_SANITIZE)
target_compile_definitions(headless-test-no-cpprt PRIVATE SPINE_NO_CPP_RT) add_executable(headless-test-no-cpprt ${CMAKE_CURRENT_SOURCE_DIR}/tests/HeadlessTest.cpp)
target_link_libraries(headless-test-no-cpprt spine-cpp-no-cpprt)
target_compile_definitions(headless-test-no-cpprt PRIVATE SPINE_NO_CPP_RT)
if(MSVC) if(MSVC)
target_link_options(headless-test-no-cpprt PRIVATE /NODEFAULTLIB) target_link_options(headless-test-no-cpprt PRIVATE /NODEFAULTLIB)
target_link_libraries(headless-test-no-cpprt msvcrt kernel32) target_link_libraries(headless-test-no-cpprt msvcrt kernel32)
elseif(CMAKE_CXX_COMPILER_ID MATCHES "Clang") elseif(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
target_link_options(headless-test-no-cpprt PRIVATE -nostdlib++ -lc) target_link_options(headless-test-no-cpprt PRIVATE -nostdlib++ -lc)
else() else()
target_link_options(headless-test-no-cpprt PRIVATE -nodefaultlibs) target_link_options(headless-test-no-cpprt PRIVATE -nodefaultlibs)
target_link_libraries(headless-test-no-cpprt -lm -lc -lgcc) target_link_libraries(headless-test-no-cpprt -lm -lc -lgcc)
endif()
endif() endif()
# Static variants (Linux only) # Static variants (Linux only, but not with sanitizers)
if(UNIX AND NOT APPLE) if(UNIX AND NOT APPLE AND NOT SPINE_SANITIZE)
add_executable(headless-test-static ${CMAKE_CURRENT_SOURCE_DIR}/tests/HeadlessTest.cpp) add_executable(headless-test-static ${CMAKE_CURRENT_SOURCE_DIR}/tests/HeadlessTest.cpp)
target_link_libraries(headless-test-static spine-cpp) target_link_libraries(headless-test-static spine-cpp)
target_link_options(headless-test-static PRIVATE -static) target_link_options(headless-test-static PRIVATE -static)