Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Package and release the Servo magicleap app #22180

Merged
merged 1 commit into from Nov 15, 2018
Merged
Changes from all commits
Commits
File filter...
Filter file types
Jump to…
Jump to file
Failed to load files.

Always

Just for now

@@ -232,11 +232,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

@@ -353,14 +353,17 @@ def get_apk_path(self, release):
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"

@@ -14,6 +14,7 @@
import json
import os
import os.path as path
import platform
import shutil
import subprocess
import sys
@@ -55,6 +56,9 @@
'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 @@ def package(self, release=False, dev=False, android=None, debug=False,
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"
ProTip! Use n and p to navigate between commits in a pull request.
You can’t perform that action at this time.