cmake: check for libc++ directly

Rather than trying to infer libc++ use from platform and compiler, just
look for a defined symbol.
This commit is contained in:
Matthew Barr 2017-04-06 10:53:28 +10:00
parent 19c7161d04
commit b1c57f9f54
2 changed files with 6 additions and 4 deletions

View File

@ -9,6 +9,7 @@ set (HS_VERSION ${HS_MAJOR_VERSION}.${HS_MINOR_VERSION}.${HS_PATCH_VERSION})
set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
include(CheckCCompilerFlag)
include(CheckCXXCompilerFlag)
include(CheckCXXSymbolExists)
INCLUDE (CheckFunctionExists)
INCLUDE (CheckIncludeFiles)
INCLUDE (CheckIncludeFileCXX)
@ -264,6 +265,9 @@ CHECK_FUNCTION_EXISTS(_aligned_malloc HAVE__ALIGNED_MALLOC)
CHECK_C_COMPILER_FLAG(-fvisibility=hidden HAS_C_HIDDEN)
CHECK_CXX_COMPILER_FLAG(-fvisibility=hidden HAS_CXX_HIDDEN)
# are we using libc++
CHECK_CXX_SYMBOL_EXISTS(_LIBCPP_VERSION ciso646 HAVE_LIBCPP)
if (RELEASE_BUILD)
if (HAS_C_HIDDEN)
set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -fvisibility=hidden")

View File

@ -3,10 +3,8 @@
set(BOOST_USE_STATIC_LIBS OFF)
set(BOOST_USE_MULTITHREADED OFF)
set(BOOST_USE_STATIC_RUNTIME OFF)
if (CMAKE_SYSTEM_NAME MATCHES "Darwin"
OR (CMAKE_SYSTEM_NAME MATCHES "FreeBSD"
AND CMAKE_C_COMPILER_ID MATCHES "Clang"))
# we need a more recent boost for libc++ used by clang on OSX and FreeBSD
if (HAVE_LIBCPP)
# we need a more recent boost for libc++
set(BOOST_MINVERSION 1.61.0)
else ()
set(BOOST_MINVERSION 1.57.0)