]> source.dussan.org Git - rspamd.git/commitdiff
[Minor] Add autodetection of the libc++
authorVsevolod Stakhov <vsevolod@rspamd.com>
Sun, 19 Feb 2023 19:34:34 +0000 (19:34 +0000)
committerVsevolod Stakhov <vsevolod@rspamd.com>
Sun, 19 Feb 2023 19:34:34 +0000 (19:34 +0000)
cmake/Toolset.cmake
debian/rules

index cd372af13510caf013620e1db965c4975465ec0a..fc019cf35a80086640c69b194ea944bc5b5f1fbc 100644 (file)
@@ -48,9 +48,24 @@ elseif (COMPILER_CLANG)
     SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-command-line-argument")
     SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-ignored-optimization-argument")
     SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-ignored-optimization-argument")
+    if (ENABLE_LIBCXX MATCHES "AUTO")
+        include(CheckCXXSourceCompiles)
+        set(OLD_CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
+        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
+        check_cxx_source_compiles("
+#include <version>
+int main() { return 0; }
+        " HAVE_LIBCXX )
+        if (HAVE_LIBCXX)
+            SET(ENABLE_LIBCXX "ON")
+        else()
+            SET(ENABLE_LIBCXX "OFF")
+        endif()
+        set(CMAKE_CXX_FLAGS "${OLD_CMAKE_CXX_FLAGS}")
+    endif()
     if (ENABLE_LIBCXX MATCHES "ON")
-        # Use libc++ as libstdc++ is buggy in many cases
         set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
+        set(CLANG_DEFAULT_CXX_STDLIB "libc++")
     endif ()
 else ()
     message (WARNING "You are using an unsupported compiler ${CMAKE_C_COMPILER_ID}. Compilation has only been tested with Clang 4+ and GCC 4+.")
index d12924d227ef36e10e413992895e286a864ab872..72823c3fc2c95251f38d46ebb790073166269f63 100755 (executable)
@@ -54,7 +54,7 @@ configure_%:
                -DENABLE_LIBUNWIND=ON \
                -DWANT_SYSTEMD_UNITS=ON \
                -DENABLE_STATIC_LIBCXX=OFF \
-               -DENABLE_LIBCXX=OFF \
+               -DENABLE_LIBCXX=AUTO \
                $(ENABLE_HYPERSCAN) \
                $(ENABLE_LUAJIT) \
                $(ENABLE_JEMALLOC) \