diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2015-11-07 07:01:54 +0530 |
---|---|---|
committer | bors-servo <lbergstrom+bors@mozilla.com> | 2015-11-07 07:01:54 +0530 |
commit | d16ba51b4722a84f69976ca8679af672495248c8 (patch) | |
tree | 785e5f7bc1dbd1b1897dbcd3f8b5795aa94287af | |
parent | faf2f34772fe06396a7b8542b00f0566832bc7ef (diff) | |
parent | e0ea1e09b3f715f44089c9f1c384f162138024e6 (diff) | |
download | servo-d16ba51b4722a84f69976ca8679af672495248c8.tar.gz servo-d16ba51b4722a84f69976ca8679af672495248c8.zip |
Auto merge of #8366 - larsbergstrom:ccache, r=frewsxcv
Add CCACHE infra and turn it on in travis
r? @Manishearth
This lets devs configure their use of CCACHE with their .servobuild file, as usual. For build environments, they can either have a .servobuild file or set the CCACHE env var to point at the ccache binary to use.
It also adds support for ccache to our travis builds. Buildbot will come in a separate commit to the saltfs repo.
It is expected that the various cargo makefiles will look at this variable and do the "right thing" to tell their native build to instead use ccache. e.g., https://github.com/servo/mozjs/pull/62
<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8366)
<!-- Reviewable:end -->
-rw-r--r-- | .travis.yml | 3 | ||||
-rw-r--r-- | python/servo/build_commands.py | 3 | ||||
-rw-r--r-- | python/servo/command_base.py | 1 | ||||
-rw-r--r-- | servobuild.example | 2 |
4 files changed, 9 insertions, 0 deletions
diff --git a/.travis.yml b/.travis.yml index 2572ae3ddfd..81f6dc4aba8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,6 +15,8 @@ matrix: directories: - .cargo - .servo + - $HOME/.ccache + env: CCACHE=/usr/bin/ccache addons: apt: packages: @@ -24,6 +26,7 @@ matrix: - libosmesa6-dev - python-virtualenv - xorg-dev + - ccache branches: only: diff --git a/python/servo/build_commands.py b/python/servo/build_commands.py index ad901ba0fd4..c2f7381e7ac 100644 --- a/python/servo/build_commands.py +++ b/python/servo/build_commands.py @@ -232,6 +232,9 @@ class MachCommands(CommandBase): env['OPENSSL_INCLUDE_DIR'] = path.join(openssl_dir, "include") env['OPENSSL_STATIC'] = 'TRUE' + if not (self.config["build"]["ccache"] == ""): + env['CCACHE'] = self.config["build"]["ccache"] + status = call( ["cargo", "build"] + opts, env=env, cwd=self.servo_crate(), verbose=verbose) diff --git a/python/servo/command_base.py b/python/servo/command_base.py index 14f8dff0c6f..4ceb5c629f4 100644 --- a/python/servo/command_base.py +++ b/python/servo/command_base.py @@ -107,6 +107,7 @@ class CommandBase(object): self.config["build"].setdefault("android", False) self.config["build"].setdefault("mode", "") self.config["build"].setdefault("debug-mozjs", False) + self.config["build"].setdefault("ccache", "") self.config.setdefault("android", {}) self.config["android"].setdefault("sdk", "") diff --git a/servobuild.example b/servobuild.example index 8d57d659e9b..8157de5b88b 100644 --- a/servobuild.example +++ b/servobuild.example @@ -36,6 +36,8 @@ rustc-with-gold = true android = false # Set "debug-mozjs" or use `mach build --debug-mozjs` to build a debug spidermonkey. debug-mozjs = false +# Set to the path to your ccache binary to enable caching of compiler outputs +#ccache = "/usr/local/bin/ccache" # Android information [android] |