diff options
author | Chris Bieneman <beanz@apple.com> | 2016-04-28 20:14:19 +0000 |
---|---|---|
committer | Chris Bieneman <beanz@apple.com> | 2016-04-28 20:14:19 +0000 |
commit | c5b250ac848f366640912af6ea0613d519673d5f (patch) | |
tree | d8423c3e728a9c8af4194e89c7c9b76ca247b0d4 /CMakeLists.txt | |
parent | 6ede1c09ad3d0db330cb56fbd1ad7b1201604470 (diff) |
[CMake] [Darwin] Use libtool instead of ar && ranlib
Summary: Using libtool instead of ar and ranlib on Darwin shaves a minute off my clang build. This is because on Darwin libtool is optimized to give hints to the kernel about filesystem interactions that allow it to be faster.
Reviewers: bogner, pete
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D19611
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@267930 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index e4d565c5535..771bce1f152 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -56,6 +56,21 @@ project(LLVM ${cmake_3_0_LANGUAGES} C CXX ASM) +if(APPLE) + if(NOT CMAKE_LIBTOOL) + find_program(CMAKE_LIBTOOL NAMES libtool) + endif() + if(CMAKE_LIBTOOL) + set(CMAKE_LIBTOOL ${CMAKE_LIBTOOL} CACHE PATH "libtool executable") + message(STATUS "Found libtool - ${CMAKE_LIBTOOL}") + get_property(languages GLOBAL PROPERTY ENABLED_LANGUAGES) + foreach(lang ${languages}) + set(CMAKE_${lang}_CREATE_STATIC_LIBRARY + "${CMAKE_LIBTOOL} -static -o <TARGET> <LINK_FLAGS> <OBJECTS> ") + endforeach() + endif() +endif() + # The following only works with the Ninja generator in CMake >= 3.0. set(LLVM_PARALLEL_COMPILE_JOBS "" CACHE STRING "Define the maximum number of concurrent compilation jobs.") |