diff options
author | bors-servo <infra@servo.org> | 2023-05-23 22:38:01 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-23 22:38:01 +0200 |
commit | 0377a1853ad635dcd7a4b00434dd9759c5ac75d7 (patch) | |
tree | 47d13db9fc143e536f1e662b3f36d332f63000cf /python/servo | |
parent | ec4d90d5729c84337bb3546fb24b13b5942c49fe (diff) | |
parent | d0c87d6c31aecc653521658834e6e86bcf213620 (diff) | |
download | servo-0377a1853ad635dcd7a4b00434dd9759c5ac75d7.tar.gz servo-0377a1853ad635dcd7a4b00434dd9759c5ac75d7.zip |
Auto merge of #29774 - michaelgrigoryan25:issue#29773, r=jdm
Remove MagicLeap support
<!-- Please describe your changes on the following line: -->
Discussed in more detail in #29773.
---
<!-- 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 fix #29773 (GitHub issue number if applicable)
<!-- 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. -->
Diffstat (limited to 'python/servo')
-rw-r--r-- | python/servo/build_commands.py | 125 | ||||
-rw-r--r-- | python/servo/command_base.py | 28 | ||||
-rw-r--r-- | python/servo/devenv_commands.py | 12 | ||||
-rw-r--r-- | python/servo/package_commands.py | 85 | ||||
-rw-r--r-- | python/servo/post_build_commands.py | 4 |
5 files changed, 31 insertions, 223 deletions
diff --git a/python/servo/build_commands.py b/python/servo/build_commands.py index b65321cb5d3..c2e3459cfbd 100644 --- a/python/servo/build_commands.py +++ b/python/servo/build_commands.py @@ -70,7 +70,7 @@ class MachCommands(CommandBase): @CommandBase.build_like_command_arguments def build(self, release=False, dev=False, jobs=None, params=None, media_stack=None, no_package=False, verbose=False, very_verbose=False, - target=None, android=False, magicleap=False, libsimpleservo=False, + target=None, android=False, libsimpleservo=False, features=None, uwp=False, win_arm64=False, **kwargs): # Force the UWP-enabled target if the convenience UWP flags are passed. if uwp and not target: @@ -82,7 +82,7 @@ class MachCommands(CommandBase): opts = params or [] features = features or [] - target, android = self.pick_target_triple(target, android, magicleap) + target, android = self.pick_target_triple(target, android) # Infer UWP build if only provided a target. if not uwp: @@ -96,9 +96,7 @@ class MachCommands(CommandBase): if android: target_path = path.join(target_path, "android") base_path = path.join(target_path, target) - elif magicleap: - target_path = path.join(target_path, "magicleap") - base_path = path.join(target_path, target) + release_path = path.join(base_path, "release", "servo") dev_path = path.join(base_path, "debug", "servo") @@ -422,121 +420,6 @@ class MachCommands(CommandBase): expr = "s#libdir=.*#libdir=%s#g" % gst_lib_path subprocess.call(["perl", "-i", "-pe", expr, pc]) - if magicleap: - if platform.system() not in ["Darwin"]: - raise Exception("Magic Leap builds are only supported on macOS. " - "If you only wish to test if your code builds, " - "run ./mach build -p libmlservo.") - - ml_sdk = env.get("MAGICLEAP_SDK") - if not ml_sdk: - raise Exception("Magic Leap builds need the MAGICLEAP_SDK environment variable") - if not os.path.exists(ml_sdk): - raise Exception("Path specified by MAGICLEAP_SDK does not exist.") - - ml_support = path.join(self.get_top_dir(), "support", "magicleap") - - # We pretend to be an Android build - env.setdefault("ANDROID_VERSION", "21") - env.setdefault("ANDROID_NDK", env["MAGICLEAP_SDK"]) - env.setdefault("ANDROID_NDK_VERSION", "16.0.0") - env.setdefault("ANDROID_PLATFORM_DIR", path.join(env["MAGICLEAP_SDK"], "lumin")) - env.setdefault("ANDROID_TOOLCHAIN_DIR", path.join(env["MAGICLEAP_SDK"], "tools", "toolchains")) - env.setdefault("ANDROID_CLANG", path.join(env["ANDROID_TOOLCHAIN_DIR"], "bin", "clang")) - - # A random collection of search paths - env.setdefault("STLPORT_LIBS", " ".join([ - "-L" + path.join(env["MAGICLEAP_SDK"], "lumin", "stl", "libc++-lumin", "lib"), - "-lc++" - ])) - env.setdefault("STLPORT_CPPFLAGS", " ".join([ - "-I" + path.join(env["MAGICLEAP_SDK"], "lumin", "stl", "libc++-lumin", "include") - ])) - env.setdefault("CPPFLAGS", " ".join([ - "--no-standard-includes", - "--sysroot=" + env["ANDROID_PLATFORM_DIR"], - "-I" + path.join(env["ANDROID_PLATFORM_DIR"], "usr", "include"), - "-isystem" + path.join(env["ANDROID_TOOLCHAIN_DIR"], "lib64", "clang", "3.8", "include"), - ])) - env.setdefault("CFLAGS", " ".join([ - env["CPPFLAGS"], - "-L" + path.join(env["ANDROID_TOOLCHAIN_DIR"], "lib", "gcc", target, "4.9.x"), - ])) - env.setdefault("CXXFLAGS", " ".join([ - # Sigh, Angle gets confused if there's another EGL around - "-I./gfx/angle/checkout/include", - env["STLPORT_CPPFLAGS"], - env["CFLAGS"] - ])) - - # The toolchain commands - env.setdefault("AR", path.join(env["ANDROID_TOOLCHAIN_DIR"], "bin", "aarch64-linux-android-ar")) - env.setdefault("AS", path.join(env["ANDROID_TOOLCHAIN_DIR"], "bin", "aarch64-linux-android-clang")) - env.setdefault("CC", path.join(env["ANDROID_TOOLCHAIN_DIR"], "bin", "aarch64-linux-android-clang")) - env.setdefault("CPP", path.join(env["ANDROID_TOOLCHAIN_DIR"], "bin", "aarch64-linux-android-clang -E")) - env.setdefault("CXX", path.join(env["ANDROID_TOOLCHAIN_DIR"], "bin", "aarch64-linux-android-clang++")) - env.setdefault("LD", path.join(env["ANDROID_TOOLCHAIN_DIR"], "bin", "aarch64-linux-android-ld")) - env.setdefault("OBJCOPY", path.join(env["ANDROID_TOOLCHAIN_DIR"], "bin", "aarch64-linux-android-objcopy")) - env.setdefault("OBJDUMP", path.join(env["ANDROID_TOOLCHAIN_DIR"], "bin", "aarch64-linux-android-objdump")) - env.setdefault("RANLIB", path.join(env["ANDROID_TOOLCHAIN_DIR"], "bin", "aarch64-linux-android-ranlib")) - env.setdefault("STRIP", path.join(env["ANDROID_TOOLCHAIN_DIR"], "bin", "aarch64-linux-android-strip")) - - # Undo all of that when compiling build tools for the host - env.setdefault("HOST_CFLAGS", "") - env.setdefault("HOST_CXXFLAGS", "") - env.setdefault("HOST_CC", "/usr/local/opt/llvm/bin/clang") - env.setdefault("HOST_CXX", "/usr/local/opt/llvm/bin/clang++") - env.setdefault("HOST_LD", "ld") - - # Some random build configurations - env.setdefault("HARFBUZZ_SYS_NO_PKG_CONFIG", "1") - env.setdefault("PKG_CONFIG_ALLOW_CROSS", "1") - env.setdefault("CMAKE_TOOLCHAIN_FILE", path.join(ml_support, "toolchain.cmake")) - env.setdefault("_LIBCPP_INLINE_VISIBILITY", "__attribute__((__always_inline__))") - - # The Open SSL configuration - env.setdefault("OPENSSL_DIR", path.join(target_path, target, "native", "openssl")) - env.setdefault("OPENSSL_VERSION", "1.1.1d") - env.setdefault("OPENSSL_STATIC", "1") - - # GStreamer configuration - env.setdefault("GSTREAMER_DIR", path.join(target_path, target, "native", "gstreamer-1.16.0")) - env.setdefault("GSTREAMER_URL", "https://servo-deps-2.s3.amazonaws.com/gstreamer/gstreamer-magicleap-1.16.0-20190823-104505.tgz") - env.setdefault("PKG_CONFIG_PATH", path.join(env["GSTREAMER_DIR"], "system", "lib64", "pkgconfig")) - - # Override the linker set in .cargo/config - env.setdefault("CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER", path.join(ml_support, "fake-ld.sh")) - - # Only build libmlservo - opts += ["--package", "libmlservo"] - - # Download and build OpenSSL if necessary - status = call(path.join(ml_support, "openssl.sh"), env=env, verbose=verbose) - if status: - return status - - # Download prebuilt Gstreamer if necessary - if not os.path.exists(path.join(env["GSTREAMER_DIR"], "system")): - if not os.path.exists(env["GSTREAMER_DIR"] + ".tgz"): - check_call([ - 'curl', - '-L', - '-f', - '-o', env["GSTREAMER_DIR"] + ".tgz", - env["GSTREAMER_URL"], - ]) - check_call([ - 'mkdir', - '-p', - env["GSTREAMER_DIR"], - ]) - check_call([ - 'tar', - 'xzf', - env["GSTREAMER_DIR"] + ".tgz", - '-C', env["GSTREAMER_DIR"], - ]) - # https://internals.rust-lang.org/t/exploring-crate-graph-build-times-with-cargo-build-ztimings/10975 # Prepend so that e.g. `-Ztimings` (which means `-Ztimings=info,html`) # given on the command line can override it @@ -553,7 +436,7 @@ class MachCommands(CommandBase): status = self.run_cargo_build_like_command( "build", opts, env=env, verbose=verbose, - target=target, android=android, magicleap=magicleap, libsimpleservo=libsimpleservo, uwp=uwp, + target=target, android=android, libsimpleservo=libsimpleservo, uwp=uwp, features=features, **kwargs ) diff --git a/python/servo/command_base.py b/python/servo/command_base.py index 048286e7957..e7536ad4e30 100644 --- a/python/servo/command_base.py +++ b/python/servo/command_base.py @@ -356,17 +356,14 @@ class CommandBase(object): build_type = "release" if release else "debug" return path.join(base_path, build_type, apk_name) - def get_binary_path(self, release, dev, target=None, android=False, magicleap=False, simpleservo=False): + def get_binary_path(self, release, dev, target=None, android=False, simpleservo=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 magicleap: - base_path = path.join(base_path, "magicleap", "aarch64-linux-android") - binary_name = "libmlservo.a" - elif android: + if android: base_path = path.join(base_path, "android", self.config["android"]["target"]) simpleservo = True elif target: @@ -824,12 +821,6 @@ install them, let us know by filing a bug!") help='Build for Android', ), CommandArgument( - '--magicleap', - default=None, - action='store_true', - help='Build for Magic Leap', - ), - CommandArgument( '--libsimpleservo', default=None, action='store_true', @@ -868,16 +859,14 @@ install them, let us know by filing a bug!") decorated_function = decorator(decorated_function) return decorated_function - def pick_target_triple(self, target, android, magicleap): + def pick_target_triple(self, target, android): if android is None: android = self.config["build"]["android"] if target and android: assert self.handle_android_target(target) if android and not target: target = self.config["android"]["target"] - if magicleap and not target: - target = "aarch64-linux-android" - if target and not android and not magicleap: + if target and not android: android = self.handle_android_target(target) return target, android @@ -900,14 +889,14 @@ install them, let us know by filing a bug!") def run_cargo_build_like_command( self, command, cargo_args, env=None, verbose=False, - target=None, android=False, magicleap=False, libsimpleservo=False, + target=None, android=False, libsimpleservo=False, features=None, debug_mozjs=False, with_debug_assertions=False, with_frame_pointer=False, without_wgl=False, with_layout_2020=False, with_layout_2013=False, uwp=False, media_stack=None, ): env = env or self.build_env() - target, android = self.pick_target_triple(target, android, magicleap) + target, android = self.pick_target_triple(target, android) args = [] if "--manifest-path" not in cargo_args: @@ -932,8 +921,9 @@ install them, let us know by filing a bug!") if "-p" not in cargo_args: # We're building specific package, that may not have features if self.config["build"]["debug-mozjs"] or debug_mozjs: features.append("debugmozjs") - if not magicleap: - features.append("native-bluetooth") + + features.append("native-bluetooth") + if uwp: features.append("no-wgl") features.append("uwp") diff --git a/python/servo/devenv_commands.py b/python/servo/devenv_commands.py index 4385fbb8794..f69a1c8231f 100644 --- a/python/servo/devenv_commands.py +++ b/python/servo/devenv_commands.py @@ -36,13 +36,13 @@ class MachCommands(CommandBase): help="Command-line arguments to be passed through to cargo check") @CommandBase.build_like_command_arguments def check(self, params, features=[], media_stack=None, target=None, - android=False, magicleap=False, **kwargs): + android=False, **kwargs): if not params: params = [] features = features or [] - target, android = self.pick_target_triple(target, android, magicleap) + target, android = self.pick_target_triple(target, android) features += self.pick_media_stack(media_stack, target) @@ -130,13 +130,13 @@ class MachCommands(CommandBase): help="Command-line arguments to be passed through to cargo-fix") @CommandBase.build_like_command_arguments def cargo_fix(self, params, features=[], media_stack=None, target=None, - android=False, magicleap=False, **kwargs): + android=False, **kwargs): if not params: params = [] features = features or [] - target, android = self.pick_target_triple(target, android, magicleap) + target, android = self.pick_target_triple(target, android) features += self.pick_media_stack(media_stack, target) @@ -154,13 +154,13 @@ class MachCommands(CommandBase): help="Command-line arguments to be passed through to cargo-clippy") @CommandBase.build_like_command_arguments def cargo_clippy(self, params, features=[], media_stack=None, target=None, - android=False, magicleap=False, **kwargs): + android=False, **kwargs): if not params: params = [] features = features or [] - target, android = self.pick_target_triple(target, android, magicleap) + target, android = self.pick_target_triple(target, android) features += self.pick_media_stack(media_stack, target) diff --git a/python/servo/package_commands.py b/python/servo/package_commands.py index 1488eadbd3e..fad9354d7cf 100644 --- a/python/servo/package_commands.py +++ b/python/servo/package_commands.py @@ -18,7 +18,6 @@ import io import json import os import os.path as path -import platform import shutil import subprocess import sys @@ -65,9 +64,6 @@ PACKAGES = { 'macbrew': [ 'target/release/brew/servo.tar.gz', ], - 'magicleap': [ - 'target/magicleap/aarch64-linux-android/release/Servo.mpk', - ], 'maven': [ 'target/android/gradle/servoview/maven/org/mozilla/servoview/servoview-armv7/', 'target/android/gradle/servoview/maven/org/mozilla/servoview/servoview-x86/', @@ -129,10 +125,6 @@ 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') @@ -148,7 +140,7 @@ class PackageCommands(CommandBase): action='append', help='Create an APPX package') @CommandArgument('--ms-app-store', default=None, action='store_true') - def package(self, release=False, dev=False, android=None, magicleap=None, debug=False, + def package(self, release=False, dev=False, android=None, debug=False, debugger=None, target=None, flavor=None, maven=False, uwp=None, ms_app_store=False): if android is None: android = self.config["build"]["android"] @@ -159,14 +151,10 @@ class PackageCommands(CommandBase): android = self.handle_android_target(target) else: target = self.config["android"]["target"] - if target and magicleap: - print("Please specify either --target or --magicleap.") - sys.exit(1) - if magicleap: - target = "aarch64-linux-android" + env = self.build_env(target=target) binary_path = self.get_binary_path( - release, dev, target=target, android=android, magicleap=magicleap, + release, dev, target=target, android=android, simpleservo=uwp is not None ) dir_to_root = self.get_top_dir() @@ -174,40 +162,6 @@ class PackageCommands(CommandBase): if uwp: vs_info = self.vs_dirs() build_uwp(uwp, dev, vs_info['msbuild'], ms_app_store) - elif 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") - # GStreamer configuration - env.setdefault("GSTREAMER_DIR", path.join( - self.get_target_dir(), "magicleap", target, "native", "gstreamer-1.16.0" - )) - - mabu = path.join(env.get("MAGICLEAP_SDK"), "mabu") - packages = [ - "./support/magicleap/Servo.package", - ] - if dev: - build_type = "lumin_debug" - else: - build_type = "lumin_release" - for package in packages: - argv = [ - mabu, - "-o", target_dir, - "-t", build_type, - "-r", - "GSTREAMER_DIR=" + env["GSTREAMER_DIR"], - 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: @@ -448,10 +402,6 @@ class PackageCommands(CommandBase): @CommandArgument('--android', action='store_true', help='Install on Android') - @CommandArgument('--magicleap', - default=None, - action='store_true', - help='Install on Magic Leap') @CommandArgument('--emulator', action='store_true', help='For Android, install to the only emulated device') @@ -461,44 +411,29 @@ class PackageCommands(CommandBase): @CommandArgument('--target', '-t', default=None, help='Install the given target platform') - def install(self, release=False, dev=False, android=False, magicleap=False, emulator=False, usb=False, target=None): + def install(self, release=False, dev=False, android=False, emulator=False, usb=False, target=None): if target and android: print("Please specify either --target or --android.") sys.exit(1) if not android: android = self.handle_android_target(target) - if target and magicleap: - print("Please specify either --target or --magicleap.") - sys.exit(1) - if magicleap: - target = "aarch64-linux-android" + env = self.build_env(target=target) try: - binary_path = self.get_binary_path(release, dev, android=android, magicleap=magicleap) + binary_path = self.get_binary_path(release, dev, android=android) except BuildNotFound: print("Servo build not found. Building servo...") result = Registrar.dispatch( - "build", context=self.context, release=release, dev=dev, android=android, magicleap=magicleap, + "build", context=self.context, release=release, dev=dev, android=android, ) if result: return result try: - binary_path = self.get_binary_path(release, dev, android=android, magicleap=magicleap) + binary_path = self.get_binary_path(release, dev, android=android) except BuildNotFound: print("Rebuilding Servo did not solve the missing build problem.") return 1 - - if magicleap: - if not env.get("MAGICLEAP_SDK"): - raise Exception("Magic Leap installs need the MAGICLEAP_SDK environment variable") - mldb = path.join(env.get("MAGICLEAP_SDK"), "tools", "mldb", "mldb") - pkg_path = path.join(path.dirname(binary_path), "Servo.mpk") - exec_command = [ - mldb, - "install", "-u", - pkg_path, - ] - elif android: + if android: pkg_path = self.get_apk_path(release) exec_command = [self.android_adb_path(env)] if emulator and usb: @@ -516,7 +451,7 @@ class PackageCommands(CommandBase): if not path.exists(pkg_path): print("Servo package not found. Packaging servo...") result = Registrar.dispatch( - "package", context=self.context, release=release, dev=dev, android=android, magicleap=magicleap, + "package", context=self.context, release=release, dev=dev, android=android, ) if result != 0: return result diff --git a/python/servo/post_build_commands.py b/python/servo/post_build_commands.py index 2450991080b..74af93fb0c9 100644 --- a/python/servo/post_build_commands.py +++ b/python/servo/post_build_commands.py @@ -241,7 +241,7 @@ class PostBuildCommands(CommandBase): 'params', nargs='...', help="Command-line arguments to be passed through to cargo doc") @CommandBase.build_like_command_arguments - def doc(self, params, features, target=None, android=False, magicleap=False, + def doc(self, params, features, target=None, android=False, media_stack=None, **kwargs): self.ensure_bootstrapped(rustup_components=["rust-docs"]) rustc_path = check_output( @@ -272,7 +272,7 @@ class PostBuildCommands(CommandBase): features = features or [] - target, android = self.pick_target_triple(target, android, magicleap) + target, android = self.pick_target_triple(target, android) features += self.pick_media_stack(media_stack, target) |