OLD | NEW |
1 # Get sources | 1 # Get sources |
2 file(GLOB LIBCXX_SOURCES ../src/*.cpp) | 2 file(GLOB LIBCXX_SOURCES ../src/*.cpp) |
| 3 |
| 4 # @LOCALMOD-START Bake libcxxabi into the libcxx build except on Mac, where |
| 5 # we use the system libcxxabi. When we do this, also don't link against |
| 6 # libcxxabi when building shared libraries. |
| 7 file(GLOB LIBCXXABI_SOURCES ../../libcxxabi/src/*.cpp) |
| 8 file(GLOB PNACL_EH_SUPPORT ../../libcxxabi/src/cxa_pnacl_sjlj_exception.cpp) |
| 9 if ( NOT CMAKE_SYSTEM_NAME STREQUAL "nacl" ) |
| 10 # Don't include pnacl EH support for non-nacl builds. |
| 11 list(REMOVE_ITEM LIBCXXABI_SOURCES ${PNACL_EH_SUPPORT}) |
| 12 endif() |
| 13 list(APPEND LIBCXX_SOURCES ${LIBCXXABI_SOURCES}) |
| 14 set(LIBCXX_CXX_ABI_LIBRARY) |
| 15 # @LOCALMOD-END |
| 16 |
3 if(WIN32) | 17 if(WIN32) |
4 file(GLOB LIBCXX_WIN32_SOURCES ../src/support/win32/*.cpp) | 18 file(GLOB LIBCXX_WIN32_SOURCES ../src/support/win32/*.cpp) |
5 list(APPEND LIBCXX_SOURCES ${LIBCXX_WIN32_SOURCES}) | 19 list(APPEND LIBCXX_SOURCES ${LIBCXX_WIN32_SOURCES}) |
6 elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "SunOS") | 20 elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "SunOS") |
7 file(GLOB LIBCXX_SOLARIS_SOURCES ../src/support/solaris/*.c) | 21 file(GLOB LIBCXX_SOLARIS_SOURCES ../src/support/solaris/*.c) |
8 list(APPEND LIBCXX_SOURCES ${LIBCXX_SOLARIS_SOURCES}) | 22 list(APPEND LIBCXX_SOURCES ${LIBCXX_SOLARIS_SOURCES}) |
9 endif() | 23 endif() |
10 | 24 |
11 # Add all the headers to the project for IDEs. | 25 # Add all the headers to the project for IDEs. |
12 if (MSVC_IDE OR XCODE) | 26 if (MSVC_IDE OR XCODE) |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
46 append_if(libraries LIBCXX_HAS_RT_LIB rt) | 60 append_if(libraries LIBCXX_HAS_RT_LIB rt) |
47 append_if(libraries LIBCXX_HAS_GCC_S_LIB gcc_s) | 61 append_if(libraries LIBCXX_HAS_GCC_S_LIB gcc_s) |
48 | 62 |
49 #if LIBCXX_CXX_ABI_LIBRARY_PATH is defined we want to add it to the search path. | 63 #if LIBCXX_CXX_ABI_LIBRARY_PATH is defined we want to add it to the search path. |
50 if (DEFINED LIBCXX_CXX_ABI_LIBRARY_PATH) | 64 if (DEFINED LIBCXX_CXX_ABI_LIBRARY_PATH) |
51 target_link_libraries(cxx "-L${LIBCXX_CXX_ABI_LIBRARY_PATH}") | 65 target_link_libraries(cxx "-L${LIBCXX_CXX_ABI_LIBRARY_PATH}") |
52 endif() | 66 endif() |
53 target_link_libraries(cxx ${libraries}) | 67 target_link_libraries(cxx ${libraries}) |
54 | 68 |
55 # Setup flags. | 69 # Setup flags. |
56 append_if(LIBCXX_COMPILE_FLAGS LIBCXX_HAS_FPIC_FLAG -fPIC) | 70 # @LOCALMOD removed append_if(LIBCXX_COMPILE_FLAGS LIBCXX_HAS_FPIC_FLAG -fPIC) |
57 append_if(LIBCXX_LINK_FLAGS LIBCXX_HAS_NODEFAULTLIBS_FLAG -nodefaultlibs) | 71 append_if(LIBCXX_LINK_FLAGS LIBCXX_HAS_NODEFAULTLIBS_FLAG -nodefaultlibs) |
58 | 72 |
59 if ( APPLE ) | 73 # @LOCALMOD-START |
| 74 if ( CMAKE_SYSTEM_NAME STREQUAL "Darwin" ) |
| 75 # Needed to build against OSX 10.6 SDK: |
| 76 # http://lists.cs.uiuc.edu/pipermail/cfe-dev/2011-January/012999.html |
| 77 list(APPEND LIBCXX_COMPILE_FLAGS "-U__STRICT_ANSI__") |
| 78 # Do not re-export libc++abi symbols since they do not come from another dylib |
| 79 list(APPEND LIBCXX_LINK_FLAGS |
| 80 "-Wl,-unexported_symbols_list,${CMAKE_CURRENT_SOURCE_DIR}/libc++unexp.exp"
) |
| 81 endif() |
| 82 |
| 83 if ( False ) # @LOCALMOD-END |
60 if ( CMAKE_OSX_DEPLOYMENT_TARGET STREQUAL "10.6" ) | 84 if ( CMAKE_OSX_DEPLOYMENT_TARGET STREQUAL "10.6" ) |
61 list(APPEND LIBCXX_COMPILE_FLAGS "-U__STRICT_ANSI__") | 85 list(APPEND LIBCXX_COMPILE_FLAGS "-U__STRICT_ANSI__") |
62 list(APPEND LIBCXX_LINK_FLAGS | 86 list(APPEND LIBCXX_LINK_FLAGS |
63 "-compatibility_version 1" | 87 "-compatibility_version 1" |
64 "-current_version 1" | 88 "-current_version 1" |
65 "-install_name /usr/lib/libc++.1.dylib" | 89 "-install_name /usr/lib/libc++.1.dylib" |
66 "-Wl,-reexport_library,/usr/lib/libc++abi.dylib" | 90 "-Wl,-reexport_library,/usr/lib/libc++abi.dylib" |
67 "-Wl,-unexported_symbols_list,${CMAKE_CURRENT_SOURCE_DIR}/libc++unexp.exp" | 91 "-Wl,-unexported_symbols_list,${CMAKE_CURRENT_SOURCE_DIR}/libc++unexp.exp" |
68 "/usr/lib/libSystem.B.dylib") | 92 "/usr/lib/libSystem.B.dylib") |
69 else() | 93 else() |
(...skipping 30 matching lines...) Expand all Loading... |
100 LINK_FLAGS "${LIBCXX_LINK_FLAGS}" | 124 LINK_FLAGS "${LIBCXX_LINK_FLAGS}" |
101 OUTPUT_NAME "c++" | 125 OUTPUT_NAME "c++" |
102 VERSION "1.0" | 126 VERSION "1.0" |
103 SOVERSION "1" | 127 SOVERSION "1" |
104 ) | 128 ) |
105 | 129 |
106 install(TARGETS cxx | 130 install(TARGETS cxx |
107 LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} | 131 LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} |
108 ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} | 132 ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} |
109 ) | 133 ) |
OLD | NEW |