From 01a20aa2ed551d0c8ae275caccb3046841aad62b Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Sun, 19 Feb 2023 19:34:34 +0000 Subject: [Minor] Add autodetection of the libc++ --- cmake/Toolset.cmake | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'cmake') diff --git a/cmake/Toolset.cmake b/cmake/Toolset.cmake index cd372af13..fc019cf35 100644 --- a/cmake/Toolset.cmake +++ b/cmake/Toolset.cmake @@ -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 +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+.") -- cgit v1.2.3