xref: /llvm-project/lld/tools/lld/CMakeLists.txt (revision 9d955a63c7b0d2d547a63d4074e03cd5ebd1f162)
1set(LLVM_LINK_COMPONENTS
2  Support
3  TargetParser
4  )
5
6add_lld_tool(lld
7  lld.cpp
8
9  SUPPORT_PLUGINS
10  GENERATE_DRIVER
11  )
12export_executable_symbols_for_plugins(lld)
13
14function(lld_target_link_libraries target type)
15  if (TARGET obj.${target})
16    target_link_libraries(obj.${target} ${ARGN})
17  endif()
18
19  get_property(LLVM_DRIVER_TOOLS GLOBAL PROPERTY LLVM_DRIVER_TOOLS)
20  if(LLVM_TOOL_LLVM_DRIVER_BUILD AND ${target} IN_LIST LLVM_DRIVER_TOOLS)
21    set(target llvm-driver)
22  endif()
23
24  target_link_libraries(${target} ${type} ${ARGN})
25endfunction()
26
27lld_target_link_libraries(lld
28  PRIVATE
29  lldCommon
30  lldCOFF
31  lldELF
32  lldMachO
33  lldMinGW
34  lldWasm
35  )
36
37if(NOT LLD_SYMLINKS_TO_CREATE)
38  set(LLD_SYMLINKS_TO_CREATE
39      lld-link ld.lld ld64.lld wasm-ld)
40endif()
41
42foreach(link ${LLD_SYMLINKS_TO_CREATE})
43  add_lld_symlink(${link} lld)
44endforeach()
45
46if(LLVM_TOOL_LLVM_DRIVER_BUILD)
47  set_property(GLOBAL APPEND PROPERTY LLVM_DRIVER_HIDDEN_TOOL_ALIASES_lld ld)
48endif()
49