1*6777b538SAndroid Build Coastguard Worker# Copyright 2014 The Chromium Authors 2*6777b538SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be 3*6777b538SAndroid Build Coastguard Worker# found in the LICENSE file. 4*6777b538SAndroid Build Coastguard Worker 5*6777b538SAndroid Build Coastguard Workerimport("//build/toolchain/rbe.gni") 6*6777b538SAndroid Build Coastguard Worker 7*6777b538SAndroid Build Coastguard Worker# Defines the configuration of cc wrapper 8*6777b538SAndroid Build Coastguard Worker# ccache: a c/c++ compiler cache which can greatly reduce recompilation times. 9*6777b538SAndroid Build Coastguard Worker# icecc, distcc: it takes compile jobs from a build and distributes them among 10*6777b538SAndroid Build Coastguard Worker# remote machines allowing a parallel build. 11*6777b538SAndroid Build Coastguard Worker# 12*6777b538SAndroid Build Coastguard Worker# TIPS 13*6777b538SAndroid Build Coastguard Worker# 14*6777b538SAndroid Build Coastguard Worker# 1) ccache 15*6777b538SAndroid Build Coastguard Worker# Set clang_use_chrome_plugins=false if using ccache 3.1.9 or earlier, since 16*6777b538SAndroid Build Coastguard Worker# these versions don't support -Xclang. (3.1.10 and later will silently 17*6777b538SAndroid Build Coastguard Worker# ignore -Xclang, so it doesn't matter if you disable clang_use_chrome_plugins 18*6777b538SAndroid Build Coastguard Worker# or not). 19*6777b538SAndroid Build Coastguard Worker# 20*6777b538SAndroid Build Coastguard Worker# Use ccache 3.2 or later to avoid clang unused argument warnings: 21*6777b538SAndroid Build Coastguard Worker# https://bugzilla.samba.org/show_bug.cgi?id=8118 22*6777b538SAndroid Build Coastguard Worker# 23*6777b538SAndroid Build Coastguard Worker# To avoid -Wparentheses-equality clang warnings, at some cost in terms of 24*6777b538SAndroid Build Coastguard Worker# speed, you can do: 25*6777b538SAndroid Build Coastguard Worker# export CCACHE_CPP2=yes 26*6777b538SAndroid Build Coastguard Worker# 27*6777b538SAndroid Build Coastguard Worker# 2) icecc 28*6777b538SAndroid Build Coastguard Worker# Set clang_use_chrome_plugins=false because icecc cannot distribute custom 29*6777b538SAndroid Build Coastguard Worker# clang libraries. 30*6777b538SAndroid Build Coastguard Worker# 31*6777b538SAndroid Build Coastguard Worker# To use icecc and ccache together, set cc_wrapper = "ccache" with 32*6777b538SAndroid Build Coastguard Worker# export CCACHE_PREFIX=icecc 33*6777b538SAndroid Build Coastguard Worker 34*6777b538SAndroid Build Coastguard Workerdeclare_args() { 35*6777b538SAndroid Build Coastguard Worker # Set to "ccache", "icecc" or "distcc". Probably doesn't work on windows. 36*6777b538SAndroid Build Coastguard Worker cc_wrapper = "" 37*6777b538SAndroid Build Coastguard Worker} 38*6777b538SAndroid Build Coastguard Worker 39*6777b538SAndroid Build Coastguard Workerassert(!use_remoteexec || cc_wrapper == "", 40*6777b538SAndroid Build Coastguard Worker "use_remoteexec and cc_wrapper can not be used together.") 41