blob: fd1d44199ca6acdc6976bc9be8e85465fc4cbd00 [file] [log] [blame]
Petr Hosekf367a2a2016-12-23 00:22:471macro(add_lld_library name)
Pavel Labathdbcc04a2017-01-24 10:41:022 cmake_parse_arguments(ARG
3 "SHARED"
4 ""
5 ""
6 ${ARGN})
7 if(ARG_SHARED)
8 set(ARG_ENABLE_SHARED SHARED)
9 endif()
10 llvm_add_library(${name} ${ARG_ENABLE_SHARED} ${ARG_UNPARSED_ARGUMENTS})
Petr Hosekf367a2a2016-12-23 00:22:4711 set_target_properties(${name} PROPERTIES FOLDER "lld libraries")
Pavel Labathdbcc04a2017-01-24 10:41:0212
13 if (LLD_BUILD_TOOLS)
14 if(${name} IN_LIST LLVM_DISTRIBUTION_COMPONENTS OR
15 NOT LLVM_DISTRIBUTION_COMPONENTS)
16 set(export_to_lldtargets EXPORT lldTargets)
17 set_property(GLOBAL PROPERTY LLD_HAS_EXPORTS True)
18 endif()
19
20 install(TARGETS ${name}
21 COMPONENT ${name}
22 ${export_to_lldtargets}
23 LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
24 ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
25 RUNTIME DESTINATION bin)
26
27 if (${ARG_SHARED} AND NOT CMAKE_CONFIGURATION_TYPES)
28 add_custom_target(install-${name}
29 DEPENDS ${name}
30 COMMAND "${CMAKE_COMMAND}"
31 -DCMAKE_INSTALL_COMPONENT=${name}
32 -P "${CMAKE_BINARY_DIR}/cmake_install.cmake")
33 endif()
34 set_property(GLOBAL APPEND PROPERTY LLD_EXPORTS ${name})
35 endif()
Petr Hosekf367a2a2016-12-23 00:22:4736endmacro(add_lld_library)
37
38macro(add_lld_executable name)
39 add_llvm_executable(${name} ${ARGN})
40 set_target_properties(${name} PROPERTIES FOLDER "lld executables")
41endmacro(add_lld_executable)
42
43macro(add_lld_tool name)
44 if (NOT LLD_BUILD_TOOLS)
45 set(EXCLUDE_FROM_ALL ON)
46 endif()
47
48 add_lld_executable(${name} ${ARGN})
49
50 if (LLD_BUILD_TOOLS)
51 if(${name} IN_LIST LLVM_DISTRIBUTION_COMPONENTS OR
52 NOT LLVM_DISTRIBUTION_COMPONENTS)
53 set(export_to_lldtargets EXPORT lldTargets)
54 set_property(GLOBAL PROPERTY LLD_HAS_EXPORTS True)
55 endif()
56
57 install(TARGETS ${name}
58 ${export_to_lldtargets}
59 RUNTIME DESTINATION bin
60 COMPONENT ${name})
61
62 if(NOT CMAKE_CONFIGURATION_TYPES)
63 add_custom_target(install-${name}
64 DEPENDS ${name}
65 COMMAND "${CMAKE_COMMAND}"
66 -DCMAKE_INSTALL_COMPONENT=${name}
67 -P "${CMAKE_BINARY_DIR}/cmake_install.cmake")
68 endif()
69 set_property(GLOBAL APPEND PROPERTY LLD_EXPORTS ${name})
70 endif()
71endmacro()
72
73macro(add_lld_symlink name dest)
74 add_llvm_tool_symlink(${name} ${dest} ALWAYS_GENERATE)
75 # Always generate install targets
76 llvm_install_symlink(${name} ${dest} ALWAYS_GENERATE)
77endmacro()