rustbuild: Add sccache support
This commit adds support for sccache, a ccache-like compiler which works on MSVC and stores results into an S3 bucket. This also switches over all Travis and AppVeyor automation to using sccache to ensure a shared and unified cache over time which can be shared across builders. The support for sccache manifests as a new `--enable-sccache` option which instructs us to configure LLVM differently to use a 'sccache' binary instead of a 'ccache' binary. All docker images for Travis builds are updated to download Mozilla's tooltool builds of sccache onto various containers and systems. Additionally a new `rust-lang-ci-sccache` bucket is configured to hold all of our ccache goodies.
This commit is contained in:
parent
0d558d012a
commit
96a5fc76dc
21 changed files with 152 additions and 35 deletions
21
configure
vendored
21
configure
vendored
|
@ -621,6 +621,7 @@ opt llvm-assertions 0 "build LLVM with assertions"
|
|||
opt debug-assertions 0 "build with debugging assertions"
|
||||
opt fast-make 0 "use .gitmodules as timestamp for submodule deps"
|
||||
opt ccache 0 "invoke gcc/clang via ccache to reuse object files between builds"
|
||||
opt sccache 0 "invoke gcc/clang via sccache to reuse object files between builds"
|
||||
opt local-rust 0 "use an installed rustc rather than downloading a snapshot"
|
||||
opt local-rebuild 0 "assume local-rust matches the current version, for rebuilds; implies local-rust, and is implied if local-rust already matches the current version"
|
||||
opt llvm-static-stdcpp 0 "statically link to libstdc++ for LLVM"
|
||||
|
@ -1677,11 +1678,23 @@ do
|
|||
LLVM_CC_64_ARG1="gcc"
|
||||
;;
|
||||
("gcc")
|
||||
LLVM_CXX_32="g++"
|
||||
LLVM_CC_32="gcc"
|
||||
if [ -z "$CFG_ENABLE_SCCACHE" ]; then
|
||||
LLVM_CXX_32="g++"
|
||||
LLVM_CC_32="gcc"
|
||||
|
||||
LLVM_CXX_64="g++"
|
||||
LLVM_CC_64="gcc"
|
||||
LLVM_CXX_64="g++"
|
||||
LLVM_CC_64="gcc"
|
||||
else
|
||||
LLVM_CXX_32="sccache"
|
||||
LLVM_CC_32="sccache"
|
||||
LLVM_CXX_32_ARG1="g++"
|
||||
LLVM_CC_32_ARG1="gcc"
|
||||
|
||||
LLVM_CXX_64="sccache"
|
||||
LLVM_CC_64="sccache"
|
||||
LLVM_CXX_64_ARG1="g++"
|
||||
LLVM_CC_64_ARG1="gcc"
|
||||
fi
|
||||
;;
|
||||
|
||||
(*)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue