aboutsummaryrefslogtreecommitdiff
path: root/lld/cmake
diff options
context:
space:
mode:
authorPetr Hosek <phosek@chromium.org>2016-12-23 00:22:47 +0000
committerPetr Hosek <phosek@chromium.org>2016-12-23 00:22:47 +0000
commitf367a2a52b07f2b25e83c4b6890efdb8bf946093 (patch)
treecb45e60f8c2578bd96171f6f4a08ae6a46b7c6d2 /lld/cmake
parent7b8a91434af55efa0d36e6c295190a8149b87159 (diff)
downloadllvm-f367a2a52b07f2b25e83c4b6890efdb8bf946093.zip
llvm-f367a2a52b07f2b25e83c4b6890efdb8bf946093.tar.gz
llvm-f367a2a52b07f2b25e83c4b6890efdb8bf946093.tar.bz2
[CMake] Add install target for the lld tool
This is necessary for the distribution targets which assume that each component has an install target. This also moves the CMake macros into a separate file akin to other LLVM projects. Differential Revision: https://reviews.llvm.org/D27876 llvm-svn: 290391
Diffstat (limited to 'lld/cmake')
-rw-r--r--lld/cmake/modules/AddLLD.cmake45
1 files changed, 45 insertions, 0 deletions
diff --git a/lld/cmake/modules/AddLLD.cmake b/lld/cmake/modules/AddLLD.cmake
new file mode 100644
index 0000000..752ca7f
--- /dev/null
+++ b/lld/cmake/modules/AddLLD.cmake
@@ -0,0 +1,45 @@
+macro(add_lld_library name)
+ add_llvm_library(${name} ${ARGN})
+ set_target_properties(${name} PROPERTIES FOLDER "lld libraries")
+endmacro(add_lld_library)
+
+macro(add_lld_executable name)
+ add_llvm_executable(${name} ${ARGN})
+ set_target_properties(${name} PROPERTIES FOLDER "lld executables")
+endmacro(add_lld_executable)
+
+macro(add_lld_tool name)
+ if (NOT LLD_BUILD_TOOLS)
+ set(EXCLUDE_FROM_ALL ON)
+ endif()
+
+ add_lld_executable(${name} ${ARGN})
+
+ 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}
+ ${export_to_lldtargets}
+ RUNTIME DESTINATION bin
+ COMPONENT ${name})
+
+ if(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()
+
+macro(add_lld_symlink name dest)
+ add_llvm_tool_symlink(${name} ${dest} ALWAYS_GENERATE)
+ # Always generate install targets
+ llvm_install_symlink(${name} ${dest} ALWAYS_GENERATE)
+endmacro()