# Copyright (c) 2014 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. # Defines the configuration of cc wrapper # ccache: a c/c++ compiler cache which can greatly reduce recompilation times. # icecc, distcc: it takes compile jobs from a build and distributes them among # remote machines allowing a parallel build. # # TIPS # # 1) ccache # Set clang_use_chrome_plugins=false if using ccache 3.1.9 or earlier, since # these versions don't support -Xclang. (3.1.10 and later will silently # ignore -Xclang, so it doesn't matter if you disable clang_use_chrome_plugins # or not). # # Use ccache 3.2 or later to avoid clang unused argument warnings: # https://bugzilla.samba.org/show_bug.cgi?id=8118 # # To avoid -Wparentheses-equality clang warnings, at some cost in terms of # speed, you can do: # export CCACHE_CPP2=yes # # 2) icecc # Set clang_use_chrome_plugins=false because icecc cannot distribute custom # clang libraries. # # To use icecc and ccache together, set cc_wrapper = "ccache" with # export CCACHE_PREFIX=icecc _cc_wrapper = "" _ccache_exec = getenv("CCACHE_EXEC") _use_ccache = getenv("USE_CCACHE") _xcache_exec = getenv("XCACHE_EXEC") _use_xcache = getenv("USE_XCACHE") if (_use_ccache == "1" && _ccache_exec != "") { _cc_wrapper = rebase_path(_ccache_exec) } else if (_use_xcache == "1" && _xcache_exec != "") { _cc_wrapper = rebase_path(_xcache_exec) } declare_args() { # Set to "ccache", "icecc" or "distcc". Probably doesn't work on windows. cc_wrapper = _cc_wrapper }