Commit 059f8379 authored by Dominik Charousset's avatar Dominik Charousset

Add '-stdlib=libc++' only on successful trial run

parent 87065f9c
......@@ -141,12 +141,24 @@ if(MORE_WARNINGS)
string(REPLACE ";" "" WFLAGS_STR ${WFLAGS})
set(EXTRA_FLAGS "${EXTRA_FLAGS} ${WFLAGS_STR}")
endif()
# add -stdlib=libc++ when using Clang
# add -stdlib=libc++ when using Clang if possible
if(NOT NO_AUTO_LIBCPP AND "${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
message(STATUS "NOTE: Automatically added -stdlib=libc++ flag, "
"you can override this by defining CMAKE_CXX_FLAGS "
"(see 'configure --help')")
set(EXTRA_FLAGS "${EXTRA_FLAGS} -stdlib=libc++")
set(CXXFLAGS_BACKUP "${CMAKE_CXX_FLAGS}")
set(CMAKE_CXX_FLAGS "-std=c++11 -stdlib=libc++")
try_run(ProgramResult
CompilationSucceeded
"${CMAKE_BINARY_DIR}"
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/get_compiler_version.cpp"
RUN_OUTPUT_VARIABLE CompilerVersion)
if(NOT CompilationSucceeded OR NOT ProgramResult EQUAL 0)
message(STATUS "Use clang with GCC' libstdc++")
else()
message(STATUS "Automatically added '-stdlib=libc++' flag "
"(NO_AUTO_LIBCPP not defined)")
set(EXTRA_FLAGS "${EXTRA_FLAGS} -stdlib=libc++")
endif()
# restore CXX flags
set(CMAKE_CXX_FLAGS "${CXXFLAGS_BACKUP}")
endif()
# enable address sanitizer if requested by the user
if(ENABLE_ADDRESS_SANITIZER)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment