Auto merge of #21809 - servo:features, r=SimonSapin

Only build ports/servo by default (except Android), add `./mach build --libsimpleservo`

Fixes #21314

<!-- 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/21809)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2018-09-27 13:35:09 -04:00 committed by GitHub
commit 0964d055cd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 26 additions and 6 deletions

View file

@ -184,9 +184,14 @@ class MachCommands(CommandBase):
default=None,
action='store_true',
help='Enable debug assertions in release')
@CommandArgument('--libsimpleservo',
default=None,
action='store_true',
help='Build the libsimpleservo library instead of the servo executable')
def build(self, target=None, release=False, dev=False, jobs=None,
features=None, android=None, no_package=False, verbose=False, very_verbose=False,
debug_mozjs=False, params=None, with_debug_assertions=False):
debug_mozjs=False, params=None, with_debug_assertions=False,
libsimpleservo=False):
opts = params or []
@ -254,6 +259,8 @@ class MachCommands(CommandBase):
self.ensure_bootstrapped(target=target)
self.ensure_clobbered()
self.add_manifest_path(opts, android, libsimpleservo)
if debug_mozjs:
features += ["debugmozjs"]

View file

@ -670,9 +670,21 @@ install them, let us know by filing a bug!")
def ports_servo_crate(self):
return path.join(self.context.topdir, "ports", "servo")
def add_manifest_path(self, args, android=False, libsimpleservo=False):
if "--manifest-path" not in args:
if libsimpleservo or android:
manifest = self.ports_libsimpleservo_manifest()
else:
manifest = self.ports_servo_manifest()
args.append("--manifest-path")
args.append(manifest)
def ports_servo_manifest(self):
return path.join(self.context.topdir, "ports", "servo", "Cargo.toml")
def ports_libsimpleservo_manifest(self):
return path.join(self.context.topdir, "ports", "libsimpleservo", "Cargo.toml")
def servo_features(self):
"""Return a list of optional features to enable for the Servo crate"""
features = []

View file

@ -42,6 +42,8 @@ class MachCommands(CommandBase):
if check:
params = ['check'] + params
self.add_manifest_path(params)
build_start = time()
status = self.call_rustup_run(["cargo"] + params, env=env)
elapsed = time() - build_start