Allow ./mach build to enable Servo's headless mode

As mentioned in #7512 and #7637, the environment variable SERVO_HEADLESS
enables building the OSMesa version of Servo when it is set to 1.

Instead, this should be a command line option to mach's build command.

Fixes #7637.
This commit is contained in:
Brandon Fairchild 2015-12-02 23:40:31 -05:00
parent 8f2a3a64f1
commit ff853e0d4a

View file

@ -134,6 +134,10 @@ class MachCommands(CommandBase):
@CommandArgument('--dev', '-d',
action='store_true',
help='Build in development mode')
@CommandArgument('--headless',
default=None,
action='store_true',
help='Enable headless mode (OSMesa)')
@CommandArgument('--jobs', '-j',
default=None,
help='Number of jobs to run in parallel')
@ -155,7 +159,7 @@ class MachCommands(CommandBase):
@CommandArgument('params', nargs='...',
help="Command-line arguments to be passed through to Cargo")
def build(self, target=None, release=False, dev=False, jobs=None,
features=None, android=None, verbose=False, debug_mozjs=False, params=None):
features=None, headless=False, android=None, verbose=False, debug_mozjs=False, params=None):
if android is None:
android = self.config["build"]["android"]
features = features or []
@ -203,9 +207,13 @@ class MachCommands(CommandBase):
if debug_mozjs or self.config["build"]["debug-mozjs"]:
features += ["script/debugmozjs"]
if is_headless_build():
opts += ["--no-default-features"]
features += ["headless"]
if headless or is_headless_build():
if sys.platform.startswith("linux"):
opts += ["--no-default-features"]
features += ["headless"]
else:
print("Headless mode (OSMesa) is not supported on your platform.")
print("Building without headless mode.")
if android:
features += ["android_glue"]