diff options
author | Eric Fiselier <eric@efcs.ca> | 2014-10-18 02:19:28 +0000 |
---|---|---|
committer | Eric Fiselier <eric@efcs.ca> | 2014-10-18 02:19:28 +0000 |
commit | 9b53c1095fd666690898d7fa247709e593aa393f (patch) | |
tree | 9b967309d18271915493c329d01df2bbbab4ac46 /cmake | |
parent | 9071bc098be3d8b04772035c157fc43f2c7538a5 (diff) |
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
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/Modules/HandleLibCXXABI.cmake | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/cmake/Modules/HandleLibCXXABI.cmake b/cmake/Modules/HandleLibCXXABI.cmake index c194d8aad..8a9f8632d 100644 --- a/cmake/Modules/HandleLibCXXABI.cmake +++ b/cmake/Modules/HandleLibCXXABI.cmake @@ -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() |