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
This commit is contained in:
edunham 2016-03-23 01:23:21 +05:01
Родитель 4c4f671610
Коммит 38a52325ef
1 изменённых файлов: 7 добавлений и 1 удалений

Просмотреть файл

@ -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)