mirror of
https://github.com/servo/servo.git
synced 2025-06-13 19:04:30 +00:00
Add 'mach check' and 'mach check-geckolib'
This commit is contained in:
parent
d2fa2ae934
commit
f693582ba9
2 changed files with 66 additions and 19 deletions
|
@ -9,6 +9,7 @@
|
|||
|
||||
from __future__ import print_function, unicode_literals
|
||||
from os import path, getcwd, listdir
|
||||
from time import time
|
||||
|
||||
import sys
|
||||
import urllib2
|
||||
|
@ -21,10 +22,43 @@ from mach.decorators import (
|
|||
)
|
||||
|
||||
from servo.command_base import CommandBase, cd, call
|
||||
from servo.build_commands import notify_build_done
|
||||
|
||||
|
||||
@CommandProvider
|
||||
class MachCommands(CommandBase):
|
||||
def run_cargo(self, params, geckolib=False, check=False):
|
||||
if geckolib:
|
||||
self.set_use_stable_rust()
|
||||
crate_dir = path.join('ports', 'geckolib')
|
||||
else:
|
||||
crate_dir = path.join('components', 'servo')
|
||||
|
||||
self.ensure_bootstrapped()
|
||||
self.ensure_clobbered()
|
||||
env = self.build_env(geckolib=geckolib)
|
||||
|
||||
if not params:
|
||||
params = []
|
||||
|
||||
if check:
|
||||
params = ['check'] + params
|
||||
|
||||
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)
|
||||
elapsed = time() - build_start
|
||||
|
||||
notify_build_done(self.config, elapsed, status == 0)
|
||||
|
||||
if check and status == 0:
|
||||
print('Finished checking, binary NOT updated. Consider ./mach build before ./mach run')
|
||||
|
||||
return status
|
||||
|
||||
@Command('cargo',
|
||||
description='Run Cargo',
|
||||
category='devenv')
|
||||
|
@ -32,15 +66,7 @@ class MachCommands(CommandBase):
|
|||
'params', default=None, nargs='...',
|
||||
help="Command-line arguments to be passed through to Cargo")
|
||||
def cargo(self, params):
|
||||
if not params:
|
||||
params = []
|
||||
|
||||
self.ensure_bootstrapped()
|
||||
|
||||
if self.context.topdir == getcwd():
|
||||
with cd(path.join('components', 'servo')):
|
||||
return call(["cargo"] + params, env=self.build_env())
|
||||
return call(['cargo'] + params, env=self.build_env())
|
||||
return self.run_cargo(params)
|
||||
|
||||
@Command('cargo-geckolib',
|
||||
description='Run Cargo with the same compiler version and root crate as build-geckolib',
|
||||
|
@ -49,17 +75,25 @@ class MachCommands(CommandBase):
|
|||
'params', default=None, nargs='...',
|
||||
help="Command-line arguments to be passed through to Cargo")
|
||||
def cargo_geckolib(self, params):
|
||||
if not params:
|
||||
params = []
|
||||
return self.run_cargo(params, geckolib=True)
|
||||
|
||||
self.set_use_stable_rust()
|
||||
self.ensure_bootstrapped()
|
||||
env = self.build_env(geckolib=True)
|
||||
@Command('check',
|
||||
description='Run "cargo check"',
|
||||
category='devenv')
|
||||
@CommandArgument(
|
||||
'params', default=None, nargs='...',
|
||||
help="Command-line arguments to be passed through to cargo check")
|
||||
def check(self, params):
|
||||
return self.run_cargo(params, check=True)
|
||||
|
||||
if self.context.topdir == getcwd():
|
||||
with cd(path.join('ports', 'geckolib')):
|
||||
return call(["cargo"] + params, env=env)
|
||||
return call(['cargo'] + params, env=env)
|
||||
@Command('check-geckolib',
|
||||
description='Run "cargo check" with the same compiler version and root crate as build-geckolib',
|
||||
category='devenv')
|
||||
@CommandArgument(
|
||||
'params', default=None, nargs='...',
|
||||
help="Command-line arguments to be passed through to cargo check")
|
||||
def check_geckolib(self, params):
|
||||
return self.run_cargo(params, check=True, geckolib=True)
|
||||
|
||||
@Command('cargo-update',
|
||||
description='Same as update-cargo',
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue