Reland "[CMake][libcxx] Do not rely on the existence of c++abi or unwind targets"
This relands commit r291727. git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@292085 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -125,8 +125,7 @@ if (LIBCXX_CXX_ABI STREQUAL "default")
|
|||||||
${LLVM_MAIN_SRC_DIR}/runtimes/libcxxabi/include
|
${LLVM_MAIN_SRC_DIR}/runtimes/libcxxabi/include
|
||||||
NO_DEFAULT_PATH
|
NO_DEFAULT_PATH
|
||||||
)
|
)
|
||||||
if (NOT DEFINED LIBCXX_STANDALONE_BUILD AND
|
if (IS_DIRECTORY "${LIBCXX_LIBCXXABI_INCLUDES_INTERNAL}")
|
||||||
IS_DIRECTORY "${LIBCXX_LIBCXXABI_INCLUDES_INTERNAL}")
|
|
||||||
set(LIBCXX_CXX_ABI_LIBNAME "libcxxabi")
|
set(LIBCXX_CXX_ABI_LIBNAME "libcxxabi")
|
||||||
set(LIBCXX_CXX_ABI_INCLUDE_PATHS "${LIBCXX_LIBCXXABI_INCLUDES_INTERNAL}")
|
set(LIBCXX_CXX_ABI_INCLUDE_PATHS "${LIBCXX_LIBCXXABI_INCLUDES_INTERNAL}")
|
||||||
set(LIBCXX_CXX_ABI_INTREE 1)
|
set(LIBCXX_CXX_ABI_INTREE 1)
|
||||||
|
|||||||
@@ -247,7 +247,8 @@ if (LIBCXX_ENABLE_STATIC)
|
|||||||
if (LIBCXX_CXX_ABI_LIBRARY_PATH)
|
if (LIBCXX_CXX_ABI_LIBRARY_PATH)
|
||||||
set(MERGE_ARCHIVES_SEARCH_PATHS "-L${LIBCXX_CXX_ABI_LIBRARY_PATH}")
|
set(MERGE_ARCHIVES_SEARCH_PATHS "-L${LIBCXX_CXX_ABI_LIBRARY_PATH}")
|
||||||
endif()
|
endif()
|
||||||
if (TARGET ${LIBCXX_CXX_ABI_LIBRARY})
|
if ((TARGET ${LIBCXX_CXX_ABI_LIBRARY}) OR
|
||||||
|
(${LIBCXX_CXX_ABI_LIBRARY} STREQUAL "cxxabi(_static|_shared)?" AND HAVE_LIBCXXABI))
|
||||||
set(MERGE_ARCHIVES_ABI_TARGET "$<TARGET_LINKER_FILE:${LIBCXX_CXX_ABI_LIBRARY}>")
|
set(MERGE_ARCHIVES_ABI_TARGET "$<TARGET_LINKER_FILE:${LIBCXX_CXX_ABI_LIBRARY}>")
|
||||||
else()
|
else()
|
||||||
set(MERGE_ARCHIVES_ABI_TARGET
|
set(MERGE_ARCHIVES_ABI_TARGET
|
||||||
@@ -318,7 +319,9 @@ if (LIBCXX_ENABLE_SHARED AND LIBCXX_ENABLE_ABI_LINKER_SCRIPT)
|
|||||||
set(LIBCXX_INTERFACE_LIBRARY_NAMES)
|
set(LIBCXX_INTERFACE_LIBRARY_NAMES)
|
||||||
foreach(lib ${LIBCXX_INTERFACE_LIBRARIES})
|
foreach(lib ${LIBCXX_INTERFACE_LIBRARIES})
|
||||||
# FIXME: Handle cxxabi_static and unwind_static.
|
# FIXME: Handle cxxabi_static and unwind_static.
|
||||||
if (TARGET ${lib})
|
if (TARGET ${lib} OR
|
||||||
|
(${lib} MATCHES "cxxabi(_static|_shared)?" AND HAVE_LIBCXXABI) OR
|
||||||
|
(${lib} MATCHES "unwind(_static|_shared)?" AND HAVE_LIBUNWIND))
|
||||||
list(APPEND LIBCXX_INTERFACE_LIBRARY_NAMES "$<TARGET_PROPERTY:${lib},OUTPUT_NAME>")
|
list(APPEND LIBCXX_INTERFACE_LIBRARY_NAMES "$<TARGET_PROPERTY:${lib},OUTPUT_NAME>")
|
||||||
else()
|
else()
|
||||||
list(APPEND LIBCXX_INTERFACE_LIBRARY_NAMES "${lib}")
|
list(APPEND LIBCXX_INTERFACE_LIBRARY_NAMES "${lib}")
|
||||||
|
|||||||
Reference in New Issue
Block a user