diff options
author | Alan Jeffrey <ajeffrey@mozilla.com> | 2018-11-12 10:58:07 -0600 |
---|---|---|
committer | Alan Jeffrey <ajeffrey@mozilla.com> | 2018-11-13 16:33:01 -0600 |
commit | ef2c2f933b686792872983fa0f80209f91bdc851 (patch) | |
tree | 64148bee61c5eb750529490550020881a6a68349 /python/servo | |
parent | b1a2b6b5bfe72440059834c67dc28ad422b89a82 (diff) | |
download | servo-ef2c2f933b686792872983fa0f80209f91bdc851.tar.gz servo-ef2c2f933b686792872983fa0f80209f91bdc851.zip |
Add magicleap-nightly builder
Diffstat (limited to 'python/servo')
-rw-r--r-- | python/servo/command_base.py | 7 | ||||
-rw-r--r-- | python/servo/package_commands.py | 38 |
2 files changed, 40 insertions, 5 deletions
diff --git a/python/servo/command_base.py b/python/servo/command_base.py index 3770de6c9cd..e44336c39d1 100644 --- a/python/servo/command_base.py +++ b/python/servo/command_base.py @@ -353,14 +353,17 @@ class CommandBase(object): def get_gstreamer_path(self): return path.join(self.context.topdir, "support", "linux", "gstreamer", "gstreamer") - def get_binary_path(self, release, dev, android=False): + def get_binary_path(self, release, dev, android=False, magicleap=False): # TODO(autrilla): this function could still use work - it shouldn't # handle quitting, or printing. It should return the path, or an error. base_path = self.get_target_dir() binary_name = "servo" + BIN_SUFFIX - if android: + if magicleap: + base_path = path.join(base_path, "aarch64-linux-android") + binary_name = "libmlservo.a" + elif android: base_path = path.join(base_path, self.config["android"]["target"]) binary_name = "libsimpleservo.so" diff --git a/python/servo/package_commands.py b/python/servo/package_commands.py index 91ca1628ee3..cbecf880262 100644 --- a/python/servo/package_commands.py +++ b/python/servo/package_commands.py @@ -14,6 +14,7 @@ import hashlib import json import os import os.path as path +import platform import shutil import subprocess import sys @@ -55,6 +56,9 @@ PACKAGES = { 'macbrew': [ 'target/release/brew/servo.tar.gz', ], + 'magicleap': [ + 'target/aarch64-linux-android/release/Servo2D.mpk', + ], 'maven': [ 'target/gradle/servoview/maven/org/mozilla/servoview/servoview-armv7/', 'target/gradle/servoview/maven/org/mozilla/servoview/servoview-x86/', @@ -196,6 +200,10 @@ class PackageCommands(CommandBase): default=None, action='store_true', help='Package Android') + @CommandArgument('--magicleap', + default=None, + action='store_true', + help='Package Magic Leap') @CommandArgument('--target', '-t', default=None, help='Package for given target platform') @@ -206,7 +214,7 @@ class PackageCommands(CommandBase): default=None, action='store_true', help='Create a local Maven repository') - def package(self, release=False, dev=False, android=None, debug=False, + def package(self, release=False, dev=False, android=None, magicleap=None, debug=False, debugger=None, target=None, flavor=None, maven=False): if android is None: android = self.config["build"]["android"] @@ -218,10 +226,34 @@ class PackageCommands(CommandBase): else: target = self.config["android"]["target"] env = self.build_env(target=target) - binary_path = self.get_binary_path(release, dev, android=android) + binary_path = self.get_binary_path(release, dev, android=android, magicleap=magicleap) dir_to_root = self.get_top_dir() target_dir = path.dirname(binary_path) - if android: + if magicleap: + if platform.system() not in ["Darwin"]: + raise Exception("Magic Leap builds are only supported on macOS.") + if not env.get("MAGICLEAP_SDK"): + raise Exception("Magic Leap builds need the MAGICLEAP_SDK environment variable") + if not env.get("MLCERT"): + raise Exception("Magic Leap builds need the MLCERT environment variable") + mabu = path.join(env.get("MAGICLEAP_SDK"), "mabu") + package = "./support/magicleap/Servo2D/Servo2D.package" + if dev: + build_type = "lumin_debug" + else: + build_type = "lumin_release" + argv = [ + mabu, + "-o", target_dir, + "-t", build_type, + package + ] + try: + subprocess.check_call(argv, env=env) + except subprocess.CalledProcessError as e: + print("Packaging Magic Leap exited with return value %d" % e.returncode) + return e.returncode + elif android: android_target = self.config["android"]["target"] if "aarch64" in android_target: build_type = "Arm64" |