diff options
author | Alexey Samsonov <samsonov@google.com> | 2013-02-08 07:39:25 +0000 |
---|---|---|
committer | Alexey Samsonov <samsonov@google.com> | 2013-02-08 07:39:25 +0000 |
commit | 304026d0c9aa51068fe36042243fbdd1c507619c (patch) | |
tree | 0b5a7f8f1e99c4fc9254b08bf5b76ccadf47f885 | |
parent | e47115fa033f3e3bd906dabe8beebc2e29e722d0 (diff) | |
download | compiler-rt-304026d0c9aa51068fe36042243fbdd1c507619c.tar.gz compiler-rt-304026d0c9aa51068fe36042243fbdd1c507619c.tar.bz2 compiler-rt-304026d0c9aa51068fe36042243fbdd1c507619c.tar.xz |
[CMake] set -mmacosx-version-min to 10.7 if compiler-rt is built with -stdlib=libc++
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@174699 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | CMakeLists.txt | 14 | ||||
-rw-r--r-- | cmake/Modules/CompilerRTUtils.cmake | 11 |
2 files changed, 24 insertions, 1 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index bd4295eb..90062cd1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -101,6 +101,10 @@ else() set(COMPILER_RT_CAN_EXECUTE_TESTS FALSE) endif() +# Check if compiler-rt is built with libc++. +find_flag_in_string("${CMAKE_CXX_FLAGS}" "-stdlib=libc++" + COMPILER_RT_USES_LIBCXX) + function(filter_available_targets out_var) set(archs) foreach(arch ${ARGN}) @@ -140,8 +144,16 @@ check_cxx_compiler_flag(-Wno-c99-extensions SUPPORTS_NO_C99_EXTENSIONS_FLAG) if(SUPPORTS_NO_C99_EXTENSIONS_FLAG) list(APPEND SANITIZER_COMMON_CFLAGS -Wno-c99-extensions) endif() + +# Setup min Mac OS X version. if(APPLE) - list(APPEND SANITIZER_COMMON_CFLAGS -mmacosx-version-min=10.5) + if(COMPILER_RT_USES_LIBCXX) + set(SANITIZER_MIN_OSX_VERSION 10.7) + else() + set(SANITIZER_MIN_OSX_VERSION 10.5) + endif() + list(APPEND SANITIZER_COMMON_CFLAGS + -mmacosx-version-min=${SANITIZER_MIN_OSX_VERSION}) endif() # Architectures supported by Sanitizer runtimes. Specific sanitizers may diff --git a/cmake/Modules/CompilerRTUtils.cmake b/cmake/Modules/CompilerRTUtils.cmake index 50f06809..f9760f40 100644 --- a/cmake/Modules/CompilerRTUtils.cmake +++ b/cmake/Modules/CompilerRTUtils.cmake @@ -15,3 +15,14 @@ function(set_target_link_flags target) set_property(TARGET ${target} PROPERTY LINK_FLAGS "${argstring}") endfunction() +# Check if a given flag is present in a space-separated flag_string. +# Store the result in out_var. +function(find_flag_in_string flag_string flag out_var) + string(REPLACE " " ";" flag_list ${flag_string}) + list(FIND flag_list ${flag} flag_pos) + if(NOT flag_pos EQUAL -1) + set(${out_var} TRUE PARENT_SCOPE) + else() + set(${out_var} FALSE PARENT_SCOPE) + endif() +endfunction() |