Skip to content

Commit 05c4b55

Browse files
committed
[cmake] Make libcxx standalone compile on Mac OS X.
llvm-svn: 189738
1 parent 06c50a5 commit 05c4b55

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

libcxx/lib/CMakeLists.txt

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,43 @@ target_link_libraries(cxx ${libraries})
4949
append_if(compile_flags LIBCXX_HAS_FPIC_FLAG -fPIC)
5050
append_if(link_flags LIBCXX_HAS_NODEFAULTLIBS_FLAG -nodefaultlibs)
5151

52+
if ( APPLE )
53+
if ( CMAKE_OSX_DEPLOYMENT_TARGET STREQUAL "10.6" )
54+
list(APPEND compile_flags "-U__STRICT_ANSI__")
55+
list(APPEND link_flags
56+
"-compatibility_version 1"
57+
"-current_version ${LIBCXX_VERSION}"
58+
"-install_name /usr/lib/libc++.1.dylib"
59+
"-Wl,-reexport_library,/usr/lib/libc++abi.dylib"
60+
"-Wl,-unexported_symbols_list,${CMAKE_CURRENT_SOURCE_DIR}/libc++unexp.exp"
61+
"/usr/lib/libSystem.B.dylib")
62+
else()
63+
if ( ${CMAKE_OSX_SYSROOT} )
64+
list(FIND ${CMAKE_OSX_ARCHITECTURES} "armv7" OSX_HAS_ARMV7)
65+
if (OSX_HAS_ARMV7)
66+
set(OSX_RE_EXPORT_LINE
67+
"${CMAKE_OSX_SYSROOT}/usr/lib/libc++abi.dylib"
68+
"-Wl,-reexported_symbols_list,${CMAKE_CURRENT_SOURCE_DIR}/libc++sjlj-abi.exp")
69+
else()
70+
set(OSX_RE_EXPORT_LINE
71+
"-Wl,-reexport_library,${CMAKE_OSX_SYSROOT}/usr/lib/libc++abi.dylib")
72+
endif()
73+
else()
74+
set (OSX_RE_EXPORT_LINE "/usr/lib/libc++abi.dylib -Wl,-reexported_symbols_list,${CMAKE_CURRENT_SOURCE_DIR}/libc++abi${LIBCXX_LIBCPPABI_VERSION}.exp")
75+
endif()
76+
77+
list(APPEND link_flags
78+
"-compatibility_version 1"
79+
"-install_name /usr/lib/libc++.1.dylib"
80+
"-Wl,-unexported_symbols_list,${CMAKE_CURRENT_SOURCE_DIR}/libc++unexp.exp"
81+
"${OSX_RE_EXPORT_LINE}"
82+
"-Wl,-force_symbols_not_weak_list,${CMAKE_CURRENT_SOURCE_DIR}/notweak.exp"
83+
"-Wl,-force_symbols_weak_list,${CMAKE_CURRENT_SOURCE_DIR}/weak.exp")
84+
endif()
85+
endif()
86+
87+
string(REPLACE ";" " " link_flags "${link_flags}")
88+
5289
set_target_properties(cxx
5390
PROPERTIES
5491
COMPILE_FLAGS "${compile_flags}"

0 commit comments

Comments
 (0)