master
1# Copyright (c) 2017 Andrew Kelley
2# This file is MIT licensed.
3# See http://opensource.org/licenses/MIT
4
5# LLD_FOUND
6# LLD_INCLUDE_DIRS
7# LLD_LIBRARIES
8
9find_path(LLD_INCLUDE_DIRS NAMES lld/Common/Driver.h
10 HINTS ${LLVM_INCLUDE_DIRS}
11 PATHS
12 /usr/lib/llvm-21/include
13 /usr/local/llvm210/include
14 /usr/local/llvm21/include
15 /usr/local/opt/lld@21/include
16 /opt/homebrew/opt/lld@21/include
17 /home/linuxbrew/.linuxbrew/opt/lld@21/include
18 /mingw64/include)
19
20find_library(LLD_LIBRARY NAMES lld-21.0 lld210 lld NAMES_PER_DIR
21 HINTS ${LLVM_LIBDIRS}
22 PATHS
23 /usr/lib/llvm-21/lib
24 /usr/local/llvm210/lib
25 /usr/local/llvm21/lib
26 /usr/local/opt/lld@21/lib
27 /opt/homebrew/opt/lld@21/lib
28 /home/linuxbrew/.linuxbrew/opt/lld@21/lib
29)
30if(EXISTS ${LLD_LIBRARY})
31 set(LLD_LIBRARIES ${LLD_LIBRARY})
32else()
33 macro(FIND_AND_ADD_LLD_LIB _libname_)
34 string(TOUPPER ${_libname_} _prettylibname_)
35 find_library(LLD_${_prettylibname_}_LIB NAMES ${_libname_} NAMES_PER_DIR
36 HINTS ${LLVM_LIBDIRS}
37 PATHS
38 ${LLD_LIBDIRS}
39 /usr/lib/llvm-21/lib
40 /usr/local/llvm210/lib
41 /usr/local/llvm21/lib
42 /usr/local/opt/lld@21/lib
43 /opt/homebrew/opt/lld@21/lib
44 /home/linuxbrew/.linuxbrew/opt/lld@21/lib
45 /mingw64/lib
46 /c/msys64/mingw64/lib
47 c:/msys64/mingw64/lib)
48 if(LLD_${_prettylibname_}_LIB)
49 set(LLD_LIBRARIES ${LLD_LIBRARIES} ${LLD_${_prettylibname_}_LIB})
50 endif()
51 endmacro(FIND_AND_ADD_LLD_LIB)
52
53 FIND_AND_ADD_LLD_LIB(lldMinGW)
54 FIND_AND_ADD_LLD_LIB(lldELF)
55 FIND_AND_ADD_LLD_LIB(lldCOFF)
56 FIND_AND_ADD_LLD_LIB(lldWasm)
57 FIND_AND_ADD_LLD_LIB(lldMachO)
58 FIND_AND_ADD_LLD_LIB(lldCommon)
59endif()
60
61include(FindPackageHandleStandardArgs)
62find_package_handle_standard_args(lld DEFAULT_MSG LLD_LIBRARIES LLD_INCLUDE_DIRS)
63
64mark_as_advanced(LLD_INCLUDE_DIRS LLD_LIBRARIES)