annotate lld/cmake/modules/AddLLD.cmake @ 209:dd44ba33042e

merged...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 08 Jun 2021 06:36:09 +0900
parents 2e18cbf3894f
children c4bab56944e8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
207
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
1 include(LLVMDistributionSupport)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
2
150
anatofuz
parents:
diff changeset
3 macro(add_lld_library name)
anatofuz
parents:
diff changeset
4 cmake_parse_arguments(ARG
anatofuz
parents:
diff changeset
5 "SHARED"
anatofuz
parents:
diff changeset
6 ""
anatofuz
parents:
diff changeset
7 ""
anatofuz
parents:
diff changeset
8 ${ARGN})
anatofuz
parents:
diff changeset
9 if(ARG_SHARED)
anatofuz
parents:
diff changeset
10 set(ARG_ENABLE_SHARED SHARED)
anatofuz
parents:
diff changeset
11 endif()
anatofuz
parents:
diff changeset
12 llvm_add_library(${name} ${ARG_ENABLE_SHARED} ${ARG_UNPARSED_ARGUMENTS})
anatofuz
parents:
diff changeset
13 set_target_properties(${name} PROPERTIES FOLDER "lld libraries")
anatofuz
parents:
diff changeset
14
anatofuz
parents:
diff changeset
15 if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
207
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
16 get_target_export_arg(${name} LLD export_to_lldtargets)
150
anatofuz
parents:
diff changeset
17 install(TARGETS ${name}
anatofuz
parents:
diff changeset
18 COMPONENT ${name}
anatofuz
parents:
diff changeset
19 ${export_to_lldtargets}
anatofuz
parents:
diff changeset
20 LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
anatofuz
parents:
diff changeset
21 ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
anatofuz
parents:
diff changeset
22 RUNTIME DESTINATION bin)
anatofuz
parents:
diff changeset
23
anatofuz
parents:
diff changeset
24 if (${ARG_SHARED} AND NOT CMAKE_CONFIGURATION_TYPES)
anatofuz
parents:
diff changeset
25 add_llvm_install_targets(install-${name}
anatofuz
parents:
diff changeset
26 DEPENDS ${name}
anatofuz
parents:
diff changeset
27 COMPONENT ${name})
anatofuz
parents:
diff changeset
28 endif()
anatofuz
parents:
diff changeset
29 set_property(GLOBAL APPEND PROPERTY LLD_EXPORTS ${name})
anatofuz
parents:
diff changeset
30 endif()
anatofuz
parents:
diff changeset
31 endmacro(add_lld_library)
anatofuz
parents:
diff changeset
32
anatofuz
parents:
diff changeset
33 macro(add_lld_executable name)
anatofuz
parents:
diff changeset
34 add_llvm_executable(${name} ${ARGN})
anatofuz
parents:
diff changeset
35 set_target_properties(${name} PROPERTIES FOLDER "lld executables")
anatofuz
parents:
diff changeset
36 endmacro(add_lld_executable)
anatofuz
parents:
diff changeset
37
anatofuz
parents:
diff changeset
38 macro(add_lld_tool name)
anatofuz
parents:
diff changeset
39 if (NOT LLD_BUILD_TOOLS)
anatofuz
parents:
diff changeset
40 set(EXCLUDE_FROM_ALL ON)
anatofuz
parents:
diff changeset
41 endif()
anatofuz
parents:
diff changeset
42
anatofuz
parents:
diff changeset
43 add_lld_executable(${name} ${ARGN})
anatofuz
parents:
diff changeset
44
anatofuz
parents:
diff changeset
45 if (LLD_BUILD_TOOLS)
207
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
46 get_target_export_arg(${name} LLD export_to_lldtargets)
150
anatofuz
parents:
diff changeset
47 install(TARGETS ${name}
anatofuz
parents:
diff changeset
48 ${export_to_lldtargets}
anatofuz
parents:
diff changeset
49 RUNTIME DESTINATION bin
anatofuz
parents:
diff changeset
50 COMPONENT ${name})
anatofuz
parents:
diff changeset
51
anatofuz
parents:
diff changeset
52 if(NOT CMAKE_CONFIGURATION_TYPES)
anatofuz
parents:
diff changeset
53 add_llvm_install_targets(install-${name}
anatofuz
parents:
diff changeset
54 DEPENDS ${name}
anatofuz
parents:
diff changeset
55 COMPONENT ${name})
anatofuz
parents:
diff changeset
56 endif()
anatofuz
parents:
diff changeset
57 set_property(GLOBAL APPEND PROPERTY LLD_EXPORTS ${name})
anatofuz
parents:
diff changeset
58 endif()
anatofuz
parents:
diff changeset
59 endmacro()
anatofuz
parents:
diff changeset
60
anatofuz
parents:
diff changeset
61 macro(add_lld_symlink name dest)
anatofuz
parents:
diff changeset
62 add_llvm_tool_symlink(${name} ${dest} ALWAYS_GENERATE)
anatofuz
parents:
diff changeset
63 # Always generate install targets
anatofuz
parents:
diff changeset
64 llvm_install_symlink(${name} ${dest} ALWAYS_GENERATE)
anatofuz
parents:
diff changeset
65 endmacro()