aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2015-11-07 07:01:54 +0530
committerbors-servo <lbergstrom+bors@mozilla.com>2015-11-07 07:01:54 +0530
commitd16ba51b4722a84f69976ca8679af672495248c8 (patch)
tree785e5f7bc1dbd1b1897dbcd3f8b5795aa94287af
parentfaf2f34772fe06396a7b8542b00f0566832bc7ef (diff)
parente0ea1e09b3f715f44089c9f1c384f162138024e6 (diff)
downloadservo-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.yml3
-rw-r--r--python/servo/build_commands.py3
-rw-r--r--python/servo/command_base.py1
-rw-r--r--servobuild.example2
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]