diff options
| author | Dan Albert <danalbert@google.com> | 2014-07-26 23:08:33 +0000 |
|---|---|---|
| committer | Dan Albert <danalbert@google.com> | 2014-07-26 23:08:33 +0000 |
| commit | 55d029e6ae67d173fd0fd218e62f9e359bb1bf34 (patch) | |
| tree | 27432391e8553fc421ad5c44820ad1d58270a6c5 /libcxx | |
| parent | 61281faa455e9c3a9d1a8d219039cc45c16ac98a (diff) | |
| download | bcm5719-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.txt | 12 |
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" "" |

