From 38a52325efba1d753a42936360c4875bb23fc602 Mon Sep 17 00:00:00 2001 From: edunham Date: Wed, 23 Mar 2016 01:23:21 +0501 Subject: [PATCH] servo: Merge #10127 - Read `rustc-with-gold` setting from env var when no `.servobuild` (from edunham:gold-env-var); r=larsbergstrom The build system needs to disable gold on arm64 slaves. Other configuration is done through environment variables, and buildbot hosts currently don't use a .servobuild file at all. This change adds the `get_env_bool` function to cast an environment variable's string contents into a Python boolean, and uses it to retrieve the optional `SERVO_RUSTC_WITH_GOLD` setting. I figured it's worth throwing the helper function in now in case we later want to read booleans from other env vars, but there's currently no need to make up a name for and read from an env var for every single setting. r? @larsbergstrom Source-Repo: https://github.com/servo/servo Source-Revision: 003fdd41769652188a5954e6499f3cb44eef6b10 --- servo/python/servo/command_base.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/servo/python/servo/command_base.py b/servo/python/servo/command_base.py index 9efad3a19c2c..2c980c276aa6 100644 --- a/servo/python/servo/command_base.py +++ b/servo/python/servo/command_base.py @@ -111,6 +111,12 @@ class CommandBase(object): def __init__(self, context): self.context = context + def get_env_bool(var, default): + # Contents of env vars are strings by default. This returns the + # boolean value of the specified environment variable, or the + # speciried default if the var doesn't contain True or False + return {'True': True, 'False': False}.get(os.environ.get(var), default) + def resolverelative(category, key): # Allow ~ self.config[category][key] = path.expanduser(self.config[category][key]) @@ -151,7 +157,7 @@ class CommandBase(object): if not self.config["tools"]["system-cargo"]: self.config["tools"]["cargo-root"] = path.join( context.sharedir, "cargo", self.cargo_build_id()) - self.config["tools"].setdefault("rustc-with-gold", True) + self.config["tools"].setdefault("rustc-with-gold", get_env_bool("SERVO_RUSTC_WITH_GOLD", True)) self.config.setdefault("build", {}) self.config["build"].setdefault("android", False)