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. git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@214037 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
3ee7233c80
commit
0c6d1a88de
@ -46,8 +46,14 @@ option(LIBCXX_INSTALL_SUPPORT_HEADERS "Install libc++ support headers." ON)
|
|||||||
|
|
||||||
set(CXXABIS none libcxxabi libcxxrt libstdc++ libsupc++)
|
set(CXXABIS none libcxxabi libcxxrt libstdc++ libsupc++)
|
||||||
if (NOT DEFINED LIBCXX_CXX_ABI)
|
if (NOT DEFINED LIBCXX_CXX_ABI)
|
||||||
|
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")
|
set(LIBCXX_CXX_ABI "none")
|
||||||
endif ()
|
endif ()
|
||||||
|
endif()
|
||||||
set(LIBCXX_CXX_ABI "${LIBCXX_CXX_ABI}" CACHE STRING
|
set(LIBCXX_CXX_ABI "${LIBCXX_CXX_ABI}" CACHE STRING
|
||||||
"Specify C++ ABI library to use." FORCE)
|
"Specify C++ ABI library to use." FORCE)
|
||||||
set_property(CACHE LIBCXX_CXX_ABI PROPERTY STRINGS ;${CXXABIS})
|
set_property(CACHE LIBCXX_CXX_ABI PROPERTY STRINGS ;${CXXABIS})
|
||||||
@ -149,6 +155,10 @@ elseif ("${LIBCXX_CXX_ABI}" STREQUAL "libcxxabi")
|
|||||||
setup_abi_lib("LIBCXX_LIBCXXABI_INCLUDE_PATHS" ""
|
setup_abi_lib("LIBCXX_LIBCXXABI_INCLUDE_PATHS" ""
|
||||||
"c++abi" "cxxabi.h" ""
|
"c++abi" "cxxabi.h" ""
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if (LIBCXX_CXX_ABI_INTREE)
|
||||||
|
add_dependencies(LIBCXX_CXX_ABI_DEPS cxxabi)
|
||||||
|
endif ()
|
||||||
elseif ("${LIBCXX_CXX_ABI}" STREQUAL "libcxxrt")
|
elseif ("${LIBCXX_CXX_ABI}" STREQUAL "libcxxrt")
|
||||||
setup_abi_lib("LIBCXX_LIBCXXRT_INCLUDE_PATHS" "-DLIBCXXRT"
|
setup_abi_lib("LIBCXX_LIBCXXRT_INCLUDE_PATHS" "-DLIBCXXRT"
|
||||||
"cxxrt" "cxxabi.h;unwind.h;unwind-arm.h;unwind-itanium.h" ""
|
"cxxrt" "cxxabi.h;unwind.h;unwind-arm.h;unwind-itanium.h" ""
|
||||||
|
Loading…
x
Reference in New Issue
Block a user