Add special case for finding the in-tree ABI library.

When libcxx is built in-tree with libcxxabi it links against libcxxabi using
the name of the cmake target and not the actual library name. The cmake target
will not work with `find_library()`, so it needs special case handling.


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@220121 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Eric Fiselier 2014-10-18 02:19:28 +00:00
parent 9071bc098b
commit 9b53c1095f

View File

@ -27,13 +27,20 @@ macro(setup_abi_lib abipathvar abidefines abilibs abifiles abidirs)
# each run of find_library.
set(LIBCXX_CXX_ABI_LIBRARIES "")
foreach(alib ${abilibs})
unset(_Res CACHE)
find_library(_Res ${alib})
if (${_Res} STREQUAL "_Res-NOTFOUND")
message(FATAL_ERROR "Failed to find ABI library: ${alib}")
# cxxabi is a cmake target and not a library.
# Handle this special case explicitly.
# Otherwise use find_library to locate the correct binary.
if (alib STREQUAL "cxxabi")
list(APPEND LIBCXX_CXX_ABI_LIBRARIES cxxabi)
else()
message(STATUS "Adding ABI library: ${_Res}")
list(APPEND LIBCXX_CXX_ABI_LIBRARIES ${_Res})
unset(_Res CACHE)
find_library(_Res ${alib})
if (${_Res} STREQUAL "_Res-NOTFOUND")
message(FATAL_ERROR "Failed to find ABI library: ${alib}")
else()
message(STATUS "Adding ABI library: ${_Res}")
list(APPEND LIBCXX_CXX_ABI_LIBRARIES ${_Res})
endif()
endif()
endforeach()