From 95c3ece2ff3ba67128b34d748d1a8eb39b11a6a3 Mon Sep 17 00:00:00 2001 From: Sumanth Gundapaneni Date: Mon, 1 Aug 2016 21:28:03 +0000 Subject: [PATCH] Build llvm with ccache if package is present This patch has the following changes The CMake variable LLVM_CCACHE_BUILD is set to OFF by default. Set this to ON for a ccache enabled build CCACHE_CPP2 is required to compile the source file directly instead of compiling the preprocessed file. This will help WERROR is turned ON for a host clang compiler The below two options makes more sense in the context of a buildbot CCACHE_HASHDIR is required to maintain the separate cached data across builders. This will also help the debuggers to point to the correct source location CCACHE_SIZE is important in the perspective of buildbot to increase the limit on the amount of data to hold in cache for faster compilation CCACHE_DIR is used to save the cached data to a specific directory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@277389 91177308-0d34-0410-b5e6-96231b3b80d8 --- CMakeLists.txt | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index c9276b376f3..1854e53cf94 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -101,6 +101,26 @@ if(LLVM_PARALLEL_COMPILE_JOBS) endif() endif() +# Build llvm with ccache if the package is present +set(LLVM_CCACHE_BUILD OFF CACHE BOOL "Set to ON for a ccache enabled build") +if(LLVM_CCACHE_BUILD) + find_program(CCACHE_PROGRAM ccache) + if(CCACHE_PROGRAM) + set(LLVM_CCACHE_SIZE "" CACHE STRING "Size of ccache") + set(LLVM_CCACHE_DIR "" CACHE STRING "Directory to keep ccached data") + set(CCACHE_PROGRAM "CCACHE_CPP2=yes CCACHE_HASHDIR=yes ${CCACHE_PROGRAM}") + if (LLVM_CCACHE_SIZE) + set(CCACHE_PROGRAM "CCACHE_SIZE=${LLVM_CCACHE_SIZE} ${CCACHE_PROGRAM}") + endif() + if (LLVM_CCACHE_DIR) + set(CCACHE_PROGRAM "CCACHE_DIR=${LLVM_CCACHE_DIR} ${CCACHE_PROGRAM}") + endif() + set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ${CCACHE_PROGRAM}) + else() + message(FATAL_ERROR "Unable to find the program ccache. Set LLVM_CCACHE_BUILD to OFF") + endif() +endif() + option(LLVM_BUILD_GLOBAL_ISEL "Experimental: Build GlobalISel" OFF) if(LLVM_BUILD_GLOBAL_ISEL) add_definitions(-DLLVM_BUILD_GLOBAL_ISEL)