mirror of
https://github.com/servo/servo.git
synced 2025-06-23 00:24:35 +01:00
78 lines
2.5 KiB
Python
78 lines
2.5 KiB
Python
from __future__ import print_function, unicode_literals
|
|
from os import path, getcwd
|
|
|
|
import subprocess
|
|
|
|
from mach.decorators import (
|
|
CommandArgument,
|
|
CommandProvider,
|
|
Command,
|
|
)
|
|
|
|
from servo.command_base import CommandBase, cd
|
|
|
|
|
|
@CommandProvider
|
|
class MachCommands(CommandBase):
|
|
@Command('cargo',
|
|
description='Run Cargo',
|
|
category='devenv')
|
|
@CommandArgument(
|
|
'params', default=None, nargs='...',
|
|
help="Command-line arguments to be passed through to Cargo")
|
|
def cargo(self, params):
|
|
if not params:
|
|
params = []
|
|
|
|
if self.context.topdir == getcwd():
|
|
with cd(path.join('components', 'servo')):
|
|
return subprocess.call(["cargo"] + params,
|
|
env=self.build_env())
|
|
return subprocess.call(['cargo'] + params,
|
|
env=self.build_env())
|
|
|
|
@Command('cargo-update',
|
|
description='Same as update-cargo',
|
|
category='devenv')
|
|
@CommandArgument(
|
|
'params', default=None, nargs='...',
|
|
help='Command-line arguments to be passed through to cargo update')
|
|
def cargo_update(self, params=None):
|
|
self.update_cargo(params)
|
|
|
|
@Command('update-cargo',
|
|
description='Update Cargo dependencies',
|
|
category='devenv')
|
|
@CommandArgument(
|
|
'params', default=None, nargs='...',
|
|
help='Command-line arguments to be passed through to cargo update')
|
|
def update_cargo(self, params=None):
|
|
if not params:
|
|
params = []
|
|
|
|
cargo_paths = [path.join('components', 'servo'),
|
|
path.join('ports', 'cef'),
|
|
path.join('ports', 'gonk')]
|
|
|
|
for cargo_path in cargo_paths:
|
|
with cd(cargo_path):
|
|
print(cargo_path)
|
|
subprocess.call(["cargo", "update"] + params,
|
|
env=self.build_env())
|
|
|
|
@Command('rustc',
|
|
description='Run the Rust compiler',
|
|
category='devenv')
|
|
@CommandArgument(
|
|
'params', default=None, nargs='...',
|
|
help="Command-line arguments to be passed through to rustc")
|
|
def rustc(self, params):
|
|
if params is None:
|
|
params = []
|
|
return subprocess.call(["rustc"] + params, env=self.build_env())
|
|
|
|
@Command('rust-root',
|
|
description='Print the path to the root of the Rust compiler',
|
|
category='devenv')
|
|
def rust_root(self):
|
|
print(self.config["tools"]["rust-root"])
|