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

Unified Diff: docs/c_cache_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: documentation_best_practices.md 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
Index: docs/c_cache_mac.md
diff --git a/docs/c_cache_mac.md b/docs/c_cache_mac.md
new file mode 100644
index 0000000000000000000000000000000000000000..265721e7cb110b51105231e11411b5b98d448e0a
--- /dev/null
+++ b/docs/c_cache_mac.md
@@ -0,0 +1,79 @@
+# Introduction
Robert Sesek 2015/08/24 18:07:43 Most of the linux docs have a linux_ prefix, where
+
+[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. If you want to use Xcode, please refer to the old [CCacheMac](http://code.google.com/p/chromium/wiki/CCacheMac) page.
+
+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](http://code.google.com/p/chromium/wiki/Clang#Using_plugins).
+
+# Installation
+
+To install ccache with [homebrew](http://mxcl.github.com/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 `$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:
+
+```
+export CC="ccache clang -Qunused-arguments"
+export CXX="ccache clang++ -Qunused-arguments"
+```
+
+Then run:
+
+```
+GYP_GENERATORS="ninja" ./build/gyp_chromium
+
+```
+or
+
+```
+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:
+
+```
+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`):
+
+```
+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
+```
+
+# 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).

Powered by Google App Engine
This is Rietveld 408576698