ccache is a compiler cache. It speeds up recompilation of C/C++ code by caching previous compilations and detecting when the same compilation is being done again. This often results in a significant speedup in common compilations, especially when switching between branches. This page is about using ccache on Mac with clang and the NinjaBuild system.
To install ccache with homebrew, use the following command:
brew install --HEAD ccache
You can also download and install yourself (with GNU automake, autoconf and libtool installed):
git clone git://git.samba.org/ccache.git cd ccache ./autogen.sh ./configure && make && make install
Make sure ccache can be found in your
You can also just use the current released version of ccache (3.1.8 or 3.1.9) and disable the chromium style plugin with
clang_use_chrome_plugins=0 in your
We have to set two environment variables (
CXX) before calling
gclient runhooks or
build/gyp_chromium, given you are currently in the
export CC="ccache clang -Qunused-arguments" export CXX="ccache clang++ -Qunused-arguments"
GYP_GENERATORS="ninja" gclient runhooks
(Instead of relying on the clang/clang++ for building chromium in your
$PATH, you can also use the absolute path here.)
You just need to set the use_ccache variable. Do so like the following:
gn gen out-gn --args='cc_wrapper="ccache"'
In the build phase, the following environment variables must be set (assuming you are in
export CCACHE_CPP2=yes export CCACHE_SLOPPINESS=time_macros export PATH=`pwd`/third_party/llvm-build/Release+Asserts/bin:$PATH
Then you can just run ninja as normal:
ninja -C out/Release chrome
ccache -M <max size>. You can see a list of configuration options by calling ccache alone. * The default ccache directory is
~/.ccache. You might want to symlink it to another directory (for example, when using FileVault for your home directory).