phase1: use wrappers for ccache
authorThibaut VARÈNE <hacks@slashdirt.org>
Fri, 29 Jun 2018 10:39:01 +0000 (12:39 +0200)
committerJo-Philipp Wich <jo@mein.io>
Tue, 25 Sep 2018 13:13:21 +0000 (15:13 +0200)
commit6cecd0ff955cc2e9033d4cacf99b2a7bd4779569
tree023fe2669c4465964a381cf8d6fd2fe6a947cbcd
parent72bdbbce337f7fb79242e5957066188edb63d0b8
phase1: use wrappers for ccache

750174c0cee95925dd322f37c211577d0ebc0dc4 attempted to inject ccache
into the CC environment, but that doesn't work as the CC/CXX variables
are processed by the build system, in order to extract the path to an
executable file.

This commit works around that situation by creating two simple wrapper
scripts on the slave. The remaining logic is unchanged:

When tryccache is False, CC/CXX point to the regular compilers and no
ccache injection is performed.

When tryccache is True, CC/CXX point to their respective wrapper, and
CCACHE is set to the path to ccache (if it exists, empty otherwise),
CCC/CCXX point to the original compilers, and the wrappers will execute
'${CCACHE} ${CCC} "$@"' or '${CCACHE} ${CCXX} "$@"'. If ${CCACHE} is
unset, this falls back to plain compilers.

i.e. ccache is only used if tryccache=True AND ccache has been found on
the slave.

Use 'exec' to avoid lingering shell during execution.

Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
phase1/master.cfg