diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2018-11-15 15:34:37 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-11-15 15:34:37 -0500 |
commit | 4620f0b8c8115b5fa808c815bb17fe727a6c15dd (patch) | |
tree | 4ce48c92c36baf71e38fc27a0990365bfcc2b475 | |
parent | b8281b437417cacfc403d87aff859705fe998124 (diff) | |
parent | ef2c2f933b686792872983fa0f80209f91bdc851 (diff) | |
download | servo-4620f0b8c8115b5fa808c815bb17fe727a6c15dd.tar.gz servo-4620f0b8c8115b5fa808c815bb17fe727a6c15dd.zip |
Auto merge of #22180 - asajeffrey:magicleap-nightly, r=jdm
Package and release the Servo magicleap app
<!-- Please describe your changes on the following line: -->
Package the Magic Leap Servo2D app, and build and release it nightly.
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes do not require tests because we don't test ML
<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
<!-- 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/22180)
<!-- Reviewable:end -->
-rw-r--r-- | etc/ci/buildbot_steps.yml | 18 | ||||
-rw-r--r-- | python/servo/command_base.py | 7 | ||||
-rw-r--r-- | python/servo/package_commands.py | 38 |
3 files changed, 57 insertions, 6 deletions
diff --git a/etc/ci/buildbot_steps.yml b/etc/ci/buildbot_steps.yml index 941f9f861d8..2b8e84638b2 100644 --- a/etc/ci/buildbot_steps.yml +++ b/etc/ci/buildbot_steps.yml @@ -230,11 +230,27 @@ android-nightly: magicleap: env: MAGICLEAP_SDK: /Users/servo/magicleap/v0.17.0 + MLCERT: /Users/servo/magicleap/certs/TempSharedCert.cert commands: - ./mach clean-nightlies --keep 3 --force - ./mach clean-cargo-cache --keep 3 --force - ./etc/ci/clean_build_artifacts.sh - - ./mach build --magicleap --dev + - env -u OPENSSL_INCLUDE_DIR -u OPENSSL_LIB_DIR ./mach build --magicleap --dev + - ./mach package --magicleap --dev + - bash ./etc/ci/lockfile_changed.sh + - ./etc/ci/clean_build_artifacts.sh + +magicleap-nightly: + env: + MAGICLEAP_SDK: /Users/servo/magicleap/v0.17.0 + MLCERT: /Users/servo/magicleap/certs/TempSharedCert.cert + commands: + - ./mach clean-nightlies --keep 3 --force + - ./mach clean-cargo-cache --keep 3 --force + - ./etc/ci/clean_build_artifacts.sh + - env -u OPENSSL_INCLUDE_DIR -u OPENSSL_LIB_DIR ./mach build --magicleap --release + - ./mach package --magicleap --release + - ./mach upload-nightly magicleap - bash ./etc/ci/lockfile_changed.sh - ./etc/ci/clean_build_artifacts.sh 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" |