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)