Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(21)

Unified Diff: docs/ccache_mac.md

Issue 1309473002: WIP: Migrate Wiki content over to src/docs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « docs/browser_view_resizer.md ('k') | docs/chrome_settings.md » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: docs/ccache_mac.md
diff --git a/docs/ccache_mac.md b/docs/ccache_mac.md
new file mode 100644
index 0000000000000000000000000000000000000000..1c2252939664e91ec0aa0f0711f030b79ea351a6
--- /dev/null
+++ b/docs/ccache_mac.md
@@ -0,0 +1,99 @@
+# Using CCache on Mac
+
+[ccache](http://ccache.samba.org/) 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.
+
+[TOC]
+
+## Installation
+
+In order to use [ccache](http://ccache.samba.org) with
+[clang](http://code.google.com/p/chromium/wiki/Clang), you need to use the
+current [git HEAD](http://ccache.samba.org/repo.html), since the most recent
+version (3.1.9) doesn't contain the
+[patch needed](https://github.com/jrosdahl/ccache/pull/4) for using
+[the chromium style plugin](clang.md#Using_plugins).
+
+To install ccache with [homebrew](http://mxcl.github.com/homebrew/), use the
+following command:
+
+```shell
+brew install --HEAD ccache
+```
+
+You can also download and install yourself (with GNU automake, autoconf and
+libtool installed):
+
+```shell
+git clone git://git.samba.org/ccache.git cd ccache
+./autogen.sh
+./configure && make && make install
+```
+
+Make sure ccache can be found in your `$PATH`.
+
+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
+`GYP_DEFINES`.
+
+## Use with GYP
+
+We have to set two environment variables (`CC` and `CXX`) before calling
+`gclient runhooks` or `build/gyp_chromium`, given you are currently in the
+`chromium/src` directory:
+
+```shell
+export CC="ccache clang -Qunused-arguments"
+export CXX="ccache clang++ -Qunused-arguments"
+```
+
+Then run:
+
+```shell
+GYP_GENERATORS="ninja" ./build/gyp_chromium
+```
+
+or
+
+```shell
+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.)
+
+## Use with GN
+
+You just need to set the use\_ccache variable. Do so like the following:
+
+```shell
+gn gen out-gn --args='use_ccache=true'
+```
+
+## Build
+
+In the build phase, the following environment variables must be set (assuming
+you are in `chromium/src`):
+
+```shell
+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:
+
+```shell
+ninja -C out/Release chrome
+```
+
+## Optional Steps
+
+* Configure ccache to use a different cache size with `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).
« no previous file with comments | « docs/browser_view_resizer.md ('k') | docs/chrome_settings.md » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698