diff --git a/.travis.yml b/.travis.yml index 2a2e6fc9257f..06d827b3a2a6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,6 +13,8 @@ matrix: directories: - .cargo - .servo + - $HOME/.ccache + env: CCACHE=/usr/bin/ccache addons: apt: packages: @@ -22,6 +24,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 ad901ba0fd4d..c2f7381e7ac5 100644 --- a/python/servo/build_commands.py +++ b/python/servo/build_commands.py @@ -232,6 +232,9 @@ def build(self, target=None, release=False, dev=False, jobs=None, 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 14f8dff0c6f9..4ceb5c629f49 100644 --- a/python/servo/command_base.py +++ b/python/servo/command_base.py @@ -107,6 +107,7 @@ def resolverelative(category, key): 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 8d57d659e9be..8157de5b88b3 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]