[libcxx] r283684 - [CMake] Fix in-tree libcxxabi build support after r283659

Hal Finkel via cfe-commits cfe-commits at lists.llvm.org
Sat Oct 8 19:49:31 PDT 2016


Author: hfinkel
Date: Sat Oct  8 21:49:31 2016
New Revision: 283684

URL: http://llvm.org/viewvc/llvm-project?rev=283684&view=rev
Log:
[CMake] Fix in-tree libcxxabi build support after r283659

r283659 changed the argument to gen_link_script.py from SCRIPT_ABI_LIBNAME to
LIBCXX_LIBRARIES_PUBLIC, assuming that all of the items in the
LIBCXX_LIBRARIES_PUBLIC list were library names. This is not right, however,
for in-tree libcxxabi builds, we might have the target name in this list. There
was special logic to fixup SCRIPT_ABI_LIBNAME for this situation; change it to
apply a similar fixup for LIBCXX_LIBRARIES_PUBLIC.

Modified:
    libcxx/trunk/lib/CMakeLists.txt

Modified: libcxx/trunk/lib/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/lib/CMakeLists.txt?rev=283684&r1=283683&r2=283684&view=diff
==============================================================================
--- libcxx/trunk/lib/CMakeLists.txt (original)
+++ libcxx/trunk/lib/CMakeLists.txt Sat Oct  8 21:49:31 2016
@@ -244,10 +244,15 @@ endif()
 if (LIBCXX_ENABLE_SHARED AND LIBCXX_ENABLE_ABI_LINKER_SCRIPT)
   # Get the name of the ABI library and handle the case where CXXABI_LIBNAME
   # is a target name and not a library. Ex cxxabi_shared.
-  set(SCRIPT_ABI_LIBNAME "${LIBCXX_CXX_ABI_LIBRARY}")
-  if (SCRIPT_ABI_LIBNAME STREQUAL "cxxabi_shared")
-    set(SCRIPT_ABI_LIBNAME "c++abi")
-  endif()
+  set(LIBCXX_LIBRARIES_PUBLIC_NAMES)
+  foreach(lib ${LIBCXX_LIBRARIES_PUBLIC})
+    if (lib STREQUAL "cxxabi_shared")
+      list(APPEND LIBCXX_LIBRARIES_PUBLIC_NAMES "c++abi")
+    else()
+      list(APPEND LIBCXX_LIBRARIES_PUBLIC_NAMES "${lib}")
+    endif()
+  endforeach()
+
   # Generate a linker script inplace of a libc++.so symlink. Rerun this command
   # after cxx builds.
   add_custom_command(TARGET cxx_shared POST_BUILD
@@ -255,7 +260,7 @@ if (LIBCXX_ENABLE_SHARED AND LIBCXX_ENAB
       ${PYTHON_EXECUTABLE} ${LIBCXX_SOURCE_DIR}/utils/gen_link_script/gen_link_script.py
     ARGS
       "$<TARGET_LINKER_FILE:cxx_shared>"
-      "\"${LIBCXX_LIBRARIES_PUBLIC}\""
+      "\"${LIBCXX_LIBRARIES_PUBLIC_NAMES}\""
     WORKING_DIRECTORY ${LIBCXX_BUILD_DIR}
   )
 endif()




More information about the cfe-commits mailing list