aboutsummaryrefslogtreecommitdiffstats
path: root/python/servo
diff options
context:
space:
mode:
Diffstat (limited to 'python/servo')
-rw-r--r--python/servo/build_commands.py20
-rw-r--r--python/servo/command_base.py13
2 files changed, 18 insertions, 15 deletions
diff --git a/python/servo/build_commands.py b/python/servo/build_commands.py
index d5f29fea854..a9f2dfe7d93 100644
--- a/python/servo/build_commands.py
+++ b/python/servo/build_commands.py
@@ -175,21 +175,23 @@ class MachCommands(CommandBase):
print("Please specify either --dev or --release.")
sys.exit(1)
- targets = []
+ if target and android:
+ print("Please specify either --target or --android.")
+ sys.exit(1)
+
if release:
opts += ["--release"]
- if target:
- opts += ["--target", target]
- targets.append(target)
if jobs is not None:
opts += ["-j", jobs]
if verbose:
opts += ["-v"]
if android:
- opts += ["--target", self.config["android"]["target"]]
- targets.append("arm-linux-androideabi")
+ target = self.config["android"]["target"]
+
+ if target:
+ opts += ["--target", target]
- self.ensure_bootstrapped(targets=targets)
+ self.ensure_bootstrapped(target=target)
if debug_mozjs or self.config["build"]["debug-mozjs"]:
features += ["script/debugmozjs"]
@@ -330,8 +332,8 @@ class MachCommands(CommandBase):
action='store_true',
help='Build in release mode')
def build_gonk(self, jobs=None, verbose=False, release=False):
- targets = ["arm-linux-androideabi"]
- self.ensure_bootstrapped(targets=targets)
+ target = "arm-linux-androideabi"
+ self.ensure_bootstrapped(target=target)
opts = []
if jobs is not None:
diff --git a/python/servo/command_base.py b/python/servo/command_base.py
index 9f2bf307c9d..1623c8fc41f 100644
--- a/python/servo/command_base.py
+++ b/python/servo/command_base.py
@@ -411,7 +411,7 @@ class CommandBase(object):
def android_build_dir(self, dev):
return path.join(self.get_target_dir(), "arm-linux-androideabi", "debug" if dev else "release")
- def ensure_bootstrapped(self, targets=[]):
+ def ensure_bootstrapped(self, target=None):
if self.context.bootstrapped:
return
@@ -422,13 +422,14 @@ class CommandBase(object):
rustc_binary_exists = path.exists(rustc_path)
base_target_path = path.join(rust_root, "rustc", "lib", "rustlib")
- target_paths = [path.join(base_target_path, t) for t in targets]
- all_targets_exist = all([path.exists(p) for p in target_paths])
+ target_exists = True
+ if target is not None:
+ target_path = path.join(base_target_path, target)
+ target_exists = path.exists(target_path)
- if (not self.config['tools']['system-rust'] and
- (not rustc_binary_exists or not all_targets_exist)):
+ if not (self.config['tools']['system-rust'] or (rustc_binary_exists and target_exists)):
print("looking for rustc at %s" % (rustc_path))
- Registrar.dispatch("bootstrap-rust", context=self.context, target=targets)
+ Registrar.dispatch("bootstrap-rust", context=self.context, target=filter(None, [target]))
cargo_path = path.join(self.config["tools"]["cargo-root"], "cargo", "bin",
"cargo" + BIN_SUFFIX)