aboutsummaryrefslogtreecommitdiff
path: root/libcxx
diff options
context:
space:
mode:
authorMichael Gottesman <mgottesman@apple.com>2013-09-02 07:28:03 +0000
committerMichael Gottesman <mgottesman@apple.com>2013-09-02 07:28:03 +0000
commit05c4b550c9ac99a99e58405cc54e27ba48de704f (patch)
tree5d148be6ec6c36e1ecf2b315e0b2322fc1165b94 /libcxx
parent06c50a5b9b42c627f4efd106c44466356bffcb6b (diff)
downloadllvm-05c4b550c9ac99a99e58405cc54e27ba48de704f.zip
llvm-05c4b550c9ac99a99e58405cc54e27ba48de704f.tar.gz
llvm-05c4b550c9ac99a99e58405cc54e27ba48de704f.tar.bz2
[cmake] Make libcxx standalone compile on Mac OS X.
llvm-svn: 189738
Diffstat (limited to 'libcxx')
-rw-r--r--libcxx/lib/CMakeLists.txt37
1 files changed, 37 insertions, 0 deletions
diff --git a/libcxx/lib/CMakeLists.txt b/libcxx/lib/CMakeLists.txt
index 4ee1f4d..45effcc 100644
--- a/libcxx/lib/CMakeLists.txt
+++ b/libcxx/lib/CMakeLists.txt
@@ -49,6 +49,43 @@ target_link_libraries(cxx ${libraries})
append_if(compile_flags LIBCXX_HAS_FPIC_FLAG -fPIC)
append_if(link_flags LIBCXX_HAS_NODEFAULTLIBS_FLAG -nodefaultlibs)
+if ( APPLE )
+ if ( CMAKE_OSX_DEPLOYMENT_TARGET STREQUAL "10.6" )
+ list(APPEND compile_flags "-U__STRICT_ANSI__")
+ list(APPEND link_flags
+ "-compatibility_version 1"
+ "-current_version ${LIBCXX_VERSION}"
+ "-install_name /usr/lib/libc++.1.dylib"
+ "-Wl,-reexport_library,/usr/lib/libc++abi.dylib"
+ "-Wl,-unexported_symbols_list,${CMAKE_CURRENT_SOURCE_DIR}/libc++unexp.exp"
+ "/usr/lib/libSystem.B.dylib")
+ else()
+ if ( ${CMAKE_OSX_SYSROOT} )
+ list(FIND ${CMAKE_OSX_ARCHITECTURES} "armv7" OSX_HAS_ARMV7)
+ if (OSX_HAS_ARMV7)
+ set(OSX_RE_EXPORT_LINE
+ "${CMAKE_OSX_SYSROOT}/usr/lib/libc++abi.dylib"
+ "-Wl,-reexported_symbols_list,${CMAKE_CURRENT_SOURCE_DIR}/libc++sjlj-abi.exp")
+ else()
+ set(OSX_RE_EXPORT_LINE
+ "-Wl,-reexport_library,${CMAKE_OSX_SYSROOT}/usr/lib/libc++abi.dylib")
+ endif()
+ else()
+ set (OSX_RE_EXPORT_LINE "/usr/lib/libc++abi.dylib -Wl,-reexported_symbols_list,${CMAKE_CURRENT_SOURCE_DIR}/libc++abi${LIBCXX_LIBCPPABI_VERSION}.exp")
+ endif()
+
+ list(APPEND link_flags
+ "-compatibility_version 1"
+ "-install_name /usr/lib/libc++.1.dylib"
+ "-Wl,-unexported_symbols_list,${CMAKE_CURRENT_SOURCE_DIR}/libc++unexp.exp"
+ "${OSX_RE_EXPORT_LINE}"
+ "-Wl,-force_symbols_not_weak_list,${CMAKE_CURRENT_SOURCE_DIR}/notweak.exp"
+ "-Wl,-force_symbols_weak_list,${CMAKE_CURRENT_SOURCE_DIR}/weak.exp")
+ endif()
+endif()
+
+string(REPLACE ";" " " link_flags "${link_flags}")
+
set_target_properties(cxx
PROPERTIES
COMPILE_FLAGS "${compile_flags}"