|  | # 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. | 
|  |  | 
|  | import("//build/toolchain/goma.gni") | 
|  |  | 
|  | # 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 | 
|  |  | 
|  | declare_args() { | 
|  | # Set to "ccache", "icecc" or "distcc".  Probably doesn't work on windows. | 
|  | cc_wrapper = "" | 
|  | } | 
|  |  | 
|  | assert(!use_goma || cc_wrapper == "", | 
|  | "use_goma and cc_wrapper can not be used together.") |