aboutsummaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
authorAndrew Kelley <superjoe30@gmail.com>2017-03-13 11:54:56 -0400
committerAndrew Kelley <superjoe30@gmail.com>2017-03-13 11:54:56 -0400
commitd10bbd28e9576d000f04ac6d06c2a8493ffc72ef (patch)
tree9cee12ed88ec066c81567e021e2bb764c0eb2d32 /cmake
parent7bc0145b802002c38a409dd9fe0b297c8af82391 (diff)
downloadzig-d10bbd28e9576d000f04ac6d06c2a8493ffc72ef.tar.gz
zig-d10bbd28e9576d000f04ac6d06c2a8493ffc72ef.zip
use lld instead of system linker
Diffstat (limited to 'cmake')
-rw-r--r--cmake/Findclang.cmake2
-rw-r--r--cmake/Findlld.cmake38
2 files changed, 39 insertions, 1 deletions
diff --git a/cmake/Findclang.cmake b/cmake/Findclang.cmake
index 27f1b6df6b..f72f10f817 100644
--- a/cmake/Findclang.cmake
+++ b/cmake/Findclang.cmake
@@ -11,7 +11,7 @@ find_path(CLANG_INCLUDE_DIRS NAMES clang/Frontend/ASTUnit.h
/usr/lib/llvm-4/include
/mingw64/include)
-macro(FIND_AND_ADD_CLANG_LIB _libname_)
+ macro(FIND_AND_ADD_CLANG_LIB _libname_)
string(TOUPPER ${_libname_} _prettylibname_)
find_library(CLANG_${_prettylibname_}_LIB NAMES ${_libname_}
PATHS
diff --git a/cmake/Findlld.cmake b/cmake/Findlld.cmake
new file mode 100644
index 0000000000..e74e8acf60
--- /dev/null
+++ b/cmake/Findlld.cmake
@@ -0,0 +1,38 @@
+# Copyright (c) 2017 Andrew Kelley
+# This file is MIT licensed.
+# See http://opensource.org/licenses/MIT
+
+# LLD_FOUND
+# LLD_INCLUDE_DIRS
+# LLD_LIBRARIES
+
+find_path(LLD_INCLUDE_DIRS NAMES lld/Driver/Driver.h
+ PATHS
+ /usr/lib/llvm-4/include
+ /mingw64/include)
+
+ macro(FIND_AND_ADD_LLD_LIB _libname_)
+ string(TOUPPER ${_libname_} _prettylibname_)
+ find_library(LLD_${_prettylibname_}_LIB NAMES ${_libname_}
+ PATHS
+ /usr/lib/llvm-4/lib
+ /mingw64/lib)
+ if(LLD_${_prettylibname_}_LIB)
+ set(LLD_LIBRARIES ${LLD_LIBRARIES} ${LLD_${_prettylibname_}_LIB})
+ endif()
+endmacro(FIND_AND_ADD_LLD_LIB)
+
+FIND_AND_ADD_LLD_LIB(lldDriver)
+FIND_AND_ADD_LLD_LIB(lldELF)
+FIND_AND_ADD_LLD_LIB(lldCOFF)
+FIND_AND_ADD_LLD_LIB(lldMachO)
+FIND_AND_ADD_LLD_LIB(lldReaderWriter)
+FIND_AND_ADD_LLD_LIB(lldCore)
+FIND_AND_ADD_LLD_LIB(lldYAML)
+FIND_AND_ADD_LLD_LIB(lldConfig)
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(LLD DEFAULT_MSG LLD_LIBRARIES LLD_INCLUDE_DIRS)
+
+mark_as_advanced(LLD_INCLUDE_DIRS LLD_LIBRARIES)
+