xref: /aosp_15_r20/external/cronet/build/toolchain/cc_wrapper.gni (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
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