Selaa lähdekoodia

[cpp] Support sanitizers again

Mario Zechner 1 kuukausi sitten
vanhempi
commit
cfcca956fa
1 muutettua tiedostoa jossa 17 lisäystä ja 14 poistoa
  1. 17 14
      spine-cpp/CMakeLists.txt

+ 17 - 14
spine-cpp/CMakeLists.txt

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