Skip to content

Commit

Permalink
Allow ./mach build-tests to enable Servo's headless mode
Browse files Browse the repository at this point in the history
This allows mach's build-tests command to use the option --headless
instead of checking for the value of SERVO_HEADLESS.
  • Loading branch information
nerith committed Dec 3, 2015
1 parent ff853e0 commit 2342b1b
Showing 1 changed file with 19 additions and 9 deletions.
28 changes: 19 additions & 9 deletions python/servo/build_commands.py
Expand Up @@ -29,6 +29,16 @@ def is_headless_build():
return int(os.getenv('SERVO_HEADLESS', 0)) == 1


def headless_supported():
supported = sys.platform.startswith("linux")

if not supported:
print("Headless mode (OSMesa) is not supported on your platform.")
print("Building without headless mode.")

return supported


def notify_linux(title, text):
try:
import dbus
Expand Down Expand Up @@ -207,13 +217,9 @@ def build(self, target=None, release=False, dev=False, jobs=None,
if debug_mozjs or self.config["build"]["debug-mozjs"]:
features += ["script/debugmozjs"]

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 (headless or is_headless_build()) and headless_supported():
opts += ["--no-default-features"]
features += ["headless"]

if android:
features += ["android_glue"]
Expand Down Expand Up @@ -332,15 +338,19 @@ def build_gonk(self, jobs=None, verbose=False, release=False):
@Command('build-tests',
description='Build the Servo test suites',
category='build')
@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')
@CommandArgument('--release', default=False, action="store_true",
help="Build tests with release mode")
def build_tests(self, jobs=None, verbose=False, release=False):
def build_tests(self, headless=False, jobs=None, verbose=False, release=False):
self.ensure_bootstrapped()
args = ["cargo", "test", "--no-run"]
if is_headless_build():
if (headless or is_headless_build()) and headless_supported():
args += ["--no-default-features", "--features", "headless"]
if release:
args += ["--release"]
Expand Down

0 comments on commit 2342b1b

Please sign in to comment.