From c59c3172dc3aba926fb490d189717b5021b31acc Mon Sep 17 00:00:00 2001 From: Petr Hosek Date: Mon, 16 Jan 2017 00:33:09 +0000 Subject: [PATCH] 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 --- CMakeLists.txt | 3 +-- lib/CMakeLists.txt | 7 +++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ed66930ea..b7d2f4aa5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -125,8 +125,7 @@ if (LIBCXX_CXX_ABI STREQUAL "default") ${LLVM_MAIN_SRC_DIR}/runtimes/libcxxabi/include NO_DEFAULT_PATH ) - if (NOT DEFINED LIBCXX_STANDALONE_BUILD AND - IS_DIRECTORY "${LIBCXX_LIBCXXABI_INCLUDES_INTERNAL}") + if (IS_DIRECTORY "${LIBCXX_LIBCXXABI_INCLUDES_INTERNAL}") set(LIBCXX_CXX_ABI_LIBNAME "libcxxabi") set(LIBCXX_CXX_ABI_INCLUDE_PATHS "${LIBCXX_LIBCXXABI_INCLUDES_INTERNAL}") set(LIBCXX_CXX_ABI_INTREE 1) diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index 23a17dd71..e11ff2627 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -247,7 +247,8 @@ if (LIBCXX_ENABLE_STATIC) if (LIBCXX_CXX_ABI_LIBRARY_PATH) set(MERGE_ARCHIVES_SEARCH_PATHS "-L${LIBCXX_CXX_ABI_LIBRARY_PATH}") 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 "$") else() set(MERGE_ARCHIVES_ABI_TARGET @@ -318,7 +319,9 @@ if (LIBCXX_ENABLE_SHARED AND LIBCXX_ENABLE_ABI_LINKER_SCRIPT) set(LIBCXX_INTERFACE_LIBRARY_NAMES) foreach(lib ${LIBCXX_INTERFACE_LIBRARIES}) # 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 "$") else() list(APPEND LIBCXX_INTERFACE_LIBRARY_NAMES "${lib}")