summaryrefslogtreecommitdiffstats
path: root/libcxx
diff options
context:
space:
mode:
authorDan Albert <danalbert@google.com>2014-07-26 23:08:33 +0000
committerDan Albert <danalbert@google.com>2014-07-26 23:08:33 +0000
commit55d029e6ae67d173fd0fd218e62f9e359bb1bf34 (patch)
tree27432391e8553fc421ad5c44820ad1d58270a6c5 /libcxx
parent61281faa455e9c3a9d1a8d219039cc45c16ac98a (diff)
downloadbcm5719-llvm-55d029e6ae67d173fd0fd218e62f9e359bb1bf34.tar.gz
bcm5719-llvm-55d029e6ae67d173fd0fd218e62f9e359bb1bf34.zip
Better defaults for in-tree libc++ with cmake.
This will detect if you are building libcxx in-tree and libcxxabi is available. If so, it will default to using the in-tree libcxxabi by setting LIBCXX_CXX_ABI to "libcxxabi", LIBCXX_LIBCXXABI_INCLUDE_PATHS to "${CMAKE_SOURCE_DIR}/projects/libcxxabi/include" and will add "cxxabi" as a proper dependency. Patch by Russell Harmon. llvm-svn: 214037
Diffstat (limited to 'libcxx')
-rw-r--r--libcxx/CMakeLists.txt12
1 files changed, 11 insertions, 1 deletions
diff --git a/libcxx/CMakeLists.txt b/libcxx/CMakeLists.txt
index c20e5d1cc2a..1345eeff2ae 100644
--- a/libcxx/CMakeLists.txt
+++ b/libcxx/CMakeLists.txt
@@ -46,7 +46,13 @@ option(LIBCXX_INSTALL_SUPPORT_HEADERS "Install libc++ support headers." ON)
set(CXXABIS none libcxxabi libcxxrt libstdc++ libsupc++)
if (NOT DEFINED LIBCXX_CXX_ABI)
- set(LIBCXX_CXX_ABI "none")
+ if (NOT DEFINED LIBCXX_BUILT_STANDALONE AND IS_DIRECTORY "${CMAKE_SOURCE_DIR}/projects/libcxxabi")
+ set(LIBCXX_CXX_ABI "libcxxabi")
+ set(LIBCXX_LIBCXXABI_INCLUDE_PATHS "${CMAKE_SOURCE_DIR}/projects/libcxxabi/include")
+ set(LIBCXX_CXX_ABI_INTREE 1)
+ else ()
+ set(LIBCXX_CXX_ABI "none")
+ endif ()
endif()
set(LIBCXX_CXX_ABI "${LIBCXX_CXX_ABI}" CACHE STRING
"Specify C++ ABI library to use." FORCE)
@@ -149,6 +155,10 @@ elseif ("${LIBCXX_CXX_ABI}" STREQUAL "libcxxabi")
setup_abi_lib("LIBCXX_LIBCXXABI_INCLUDE_PATHS" ""
"c++abi" "cxxabi.h" ""
)
+
+ if (LIBCXX_CXX_ABI_INTREE)
+ add_dependencies(LIBCXX_CXX_ABI_DEPS cxxabi)
+ endif ()
elseif ("${LIBCXX_CXX_ABI}" STREQUAL "libcxxrt")
setup_abi_lib("LIBCXX_LIBCXXRT_INCLUDE_PATHS" "-DLIBCXXRT"
"cxxrt" "cxxabi.h;unwind.h;unwind-arm.h;unwind-itanium.h" ""
OpenPOWER on IntegriCloud