Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Improve build target argument handling
  • Loading branch information
mmatyas committed May 5, 2016
1 parent 319f520 commit 200af79
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 15 deletions.
20 changes: 11 additions & 9 deletions python/servo/build_commands.py
Expand Up @@ -175,21 +175,23 @@ def build(self, target=None, release=False, dev=False, jobs=None,
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"]
Expand Down Expand Up @@ -330,8 +332,8 @@ def build_geckolib(self, jobs=None, verbose=False, release=False):
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:
Expand Down
13 changes: 7 additions & 6 deletions python/servo/command_base.py
Expand Up @@ -411,7 +411,7 @@ def android_support_dir(self):
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

Expand All @@ -422,13 +422,14 @@ def ensure_bootstrapped(self, targets=[]):
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)
Expand Down

0 comments on commit 200af79

Please sign in to comment.