Auto merge of #19539 - emilio:cargo-geckolib, r=SimonSapin

mach: Fix cargo-geckolib check / cargo-geckolib build after #19476.

<!-- Reviewable:start -->
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/19539)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2017-12-13 20:26:43 -06:00 committed by GitHub
commit 11d32d8800

View file

@ -8,7 +8,7 @@
# except according to those terms. # except according to those terms.
from __future__ import print_function, unicode_literals from __future__ import print_function, unicode_literals
from os import path, getcwd, listdir from os import path, listdir
from time import time from time import time
import sys import sys
@ -29,27 +29,29 @@ from servo.util import STATIC_RUST_LANG_ORG_DIST, URLOPEN_KWARGS
@CommandProvider @CommandProvider
class MachCommands(CommandBase): class MachCommands(CommandBase):
def run_cargo(self, params, geckolib=False, check=False): def run_cargo(self, params, geckolib=False, check=False):
if geckolib: if not params:
self.set_use_stable_rust() params = []
crate_dir = path.join('ports', 'geckolib')
else:
crate_dir = path.join('ports', 'servo')
self.ensure_bootstrapped() self.ensure_bootstrapped()
self.ensure_clobbered() self.ensure_clobbered()
env = self.build_env(geckolib=geckolib) env = self.build_env(geckolib=geckolib)
if not params:
params = []
if check: if check:
params = ['check'] + params params = ['check'] + params
if geckolib:
# for c in $(cargo --list | tail -$(($(cargo --list | wc -l) - 1))); do
# (cargo help $c 2>&1 | grep "\\--package" >/dev/null 2>&1) && echo $c
# done
if params[0] and params[0] in [
'bench', 'build', 'check', 'clean', 'doc', 'fmt', 'pkgid',
'run', 'rustc', 'rustdoc', 'test', 'update',
]:
params[1:1] = ['--package', 'geckoservo']
self.set_use_stable_rust()
build_start = time() build_start = time()
if self.context.topdir == getcwd():
with cd(crate_dir):
status = call(['cargo'] + params, env=env)
else:
status = call(['cargo'] + params, env=env) status = call(['cargo'] + params, env=env)
elapsed = time() - build_start elapsed = time() - build_start
@ -94,7 +96,7 @@ class MachCommands(CommandBase):
'params', default=None, nargs='...', 'params', default=None, nargs='...',
help="Command-line arguments to be passed through to cargo check") help="Command-line arguments to be passed through to cargo check")
def check_geckolib(self, params): def check_geckolib(self, params):
return self.run_cargo(["-p", "geckoservo"] + (params or []), check=True, geckolib=True) return self.run_cargo(params, check=True, geckolib=True)
@Command('cargo-update', @Command('cargo-update',
description='Same as update-cargo', description='Same as update-cargo',