[lld] [lld] enable installing lld headers as part of distribution (PR #127123)
Maksim Levental via llvm-commits
llvm-commits at lists.llvm.org
Thu Feb 13 13:20:39 PST 2025
https://github.com/makslevental updated https://github.com/llvm/llvm-project/pull/127123
>From fafbf216156043d1874cb339e44f57bb1e8dd4b6 Mon Sep 17 00:00:00 2001
From: Maksim Levental <maksim.levental at gmail.com>
Date: Thu, 13 Feb 2025 15:44:47 -0500
Subject: [PATCH] [lld] enable installing lld headers as part of distribution
---
lld/CMakeLists.txt | 45 ++++++++++++++++++++++++++++------
lld/cmake/modules/AddLLD.cmake | 5 ++--
2 files changed, 40 insertions(+), 10 deletions(-)
diff --git a/lld/CMakeLists.txt b/lld/CMakeLists.txt
index 64c9f23805509..012a943d5bcec 100644
--- a/lld/CMakeLists.txt
+++ b/lld/CMakeLists.txt
@@ -180,14 +180,6 @@ include_directories(BEFORE
${CMAKE_CURRENT_SOURCE_DIR}/include
)
-if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
- install(DIRECTORY include/
- DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
- FILES_MATCHING
- PATTERN "*.h"
- )
-endif()
-
add_subdirectory(Common)
add_subdirectory(tools/lld)
@@ -207,4 +199,41 @@ add_subdirectory(MachO)
add_subdirectory(MinGW)
add_subdirectory(wasm)
+add_custom_target(lld-headers)
+set_target_properties(lld-headers PROPERTIES FOLDER "Misc")
+if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+ install(DIRECTORY include/lld
+ DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
+ COMPONENT lld-headers
+ FILES_MATCHING
+ PATTERN "*.h"
+ )
+
+ if (NOT LLVM_ENABLE_IDE)
+ add_llvm_install_targets(install-lld-headers
+ DEPENDS lld-headers
+ COMPONENT lld-headers)
+ endif()
+endif()
+
+# Custom target to install all lld libraries
+add_custom_target(lld-libraries)
+if (NOT LLVM_ENABLE_IDE)
+ add_llvm_install_targets(install-lld-libraries
+ DEPENDS lld-libraries
+ COMPONENT lld-libraries)
+endif()
+
+get_property(LLD_LIBS GLOBAL PROPERTY LLD_ALL_LIBS)
+if(LLD_LIBS)
+ list(REMOVE_DUPLICATES LLD_LIBS)
+ foreach(lib ${LLD_LIBS})
+ add_dependencies(lld-libraries ${lib})
+ if(NOT LLVM_ENABLE_IDE)
+ add_dependencies(install-lld-libraries install-${lib})
+ add_dependencies(install-lld-libraries-stripped install-${lib}-stripped)
+ endif()
+ endforeach()
+endif()
+
add_subdirectory(cmake/modules)
diff --git a/lld/cmake/modules/AddLLD.cmake b/lld/cmake/modules/AddLLD.cmake
index 9f2684b6f933e..1de373ff860c4 100644
--- a/lld/cmake/modules/AddLLD.cmake
+++ b/lld/cmake/modules/AddLLD.cmake
@@ -13,7 +13,7 @@ macro(add_lld_library name)
llvm_add_library(${name} ${ARG_ENABLE_SHARED} ${ARG_UNPARSED_ARGUMENTS})
if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
- get_target_export_arg(${name} LLD export_to_lldtargets)
+ get_target_export_arg(${name} LLD export_to_lldtargets UMBRELLA lld-libraries)
install(TARGETS ${name}
COMPONENT ${name}
${export_to_lldtargets}
@@ -21,11 +21,12 @@ macro(add_lld_library name)
ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
- if (${ARG_SHARED} AND NOT CMAKE_CONFIGURATION_TYPES)
+ if (NOT CMAKE_CONFIGURATION_TYPES)
add_llvm_install_targets(install-${name}
DEPENDS ${name}
COMPONENT ${name})
endif()
+ set_property(GLOBAL APPEND PROPERTY LLD_ALL_LIBS ${name})
set_property(GLOBAL APPEND PROPERTY LLD_EXPORTS ${name})
endif()
endmacro(add_lld_library)
More information about the llvm-commits
mailing list