[lld] r293288 - Merging r292909:

Hans Wennborg via llvm-commits llvm-commits at lists.llvm.org
Fri Jan 27 07:40:40 PST 2017


Author: hans
Date: Fri Jan 27 09:40:40 2017
New Revision: 293288

URL: http://llvm.org/viewvc/llvm-project?rev=293288&view=rev
Log:
Merging r292909:
------------------------------------------------------------------------
r292909 | labath | 2017-01-24 02:41:02 -0800 (Tue, 24 Jan 2017) | 16 lines

[lld][cmake] Fix BUILD_SHARED_LIBS installation

Summary:
This fixes a regression caused by D28397, which switched lld from using
add_llvm_library to llvm_add_library. The latter does not automatically set up
install rules for libraries, as it's expected the project will set them up
manually based on its own needs.

This adds the install rules to add_lld_library for lld. They were inspired by
the similar add_clang_library macro in clang.

Reviewers: ruiu, beanz, davidlt, EricWF, dtzWill

Subscribers: mgorny, llvm-commits

Differential Revision: https://reviews.llvm.org/D29007
------------------------------------------------------------------------

Modified:
    lld/branches/release_40/   (props changed)
    lld/branches/release_40/cmake/modules/AddLLD.cmake

Propchange: lld/branches/release_40/
------------------------------------------------------------------------------
    svn:mergeinfo = /lld/trunk:292909

Modified: lld/branches/release_40/cmake/modules/AddLLD.cmake
URL: http://llvm.org/viewvc/llvm-project/lld/branches/release_40/cmake/modules/AddLLD.cmake?rev=293288&r1=293287&r2=293288&view=diff
==============================================================================
--- lld/branches/release_40/cmake/modules/AddLLD.cmake (original)
+++ lld/branches/release_40/cmake/modules/AddLLD.cmake Fri Jan 27 09:40:40 2017
@@ -1,6 +1,38 @@
 macro(add_lld_library name)
-  llvm_add_library(${name} ${ARGN})
+  cmake_parse_arguments(ARG
+    "SHARED"
+    ""
+    ""
+    ${ARGN})
+  if(ARG_SHARED)
+    set(ARG_ENABLE_SHARED SHARED)
+  endif()
+  llvm_add_library(${name} ${ARG_ENABLE_SHARED} ${ARG_UNPARSED_ARGUMENTS})
   set_target_properties(${name} PROPERTIES FOLDER "lld libraries")
+
+  if (LLD_BUILD_TOOLS)
+    if(${name} IN_LIST LLVM_DISTRIBUTION_COMPONENTS OR
+        NOT LLVM_DISTRIBUTION_COMPONENTS)
+      set(export_to_lldtargets EXPORT lldTargets)
+      set_property(GLOBAL PROPERTY LLD_HAS_EXPORTS True)
+    endif()
+
+    install(TARGETS ${name}
+      COMPONENT ${name}
+      ${export_to_lldtargets}
+      LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+      ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+      RUNTIME DESTINATION bin)
+
+    if (${ARG_SHARED} AND NOT CMAKE_CONFIGURATION_TYPES)
+      add_custom_target(install-${name}
+        DEPENDS ${name}
+        COMMAND "${CMAKE_COMMAND}"
+          -DCMAKE_INSTALL_COMPONENT=${name}
+          -P "${CMAKE_BINARY_DIR}/cmake_install.cmake")
+    endif()
+    set_property(GLOBAL APPEND PROPERTY LLD_EXPORTS ${name})
+  endif()
 endmacro(add_lld_library)
 
 macro(add_lld_executable name)




More information about the llvm-commits mailing list