diff options
author | Josh Matthews <josh@joshmatthews.net> | 2019-06-28 16:48:26 -0400 |
---|---|---|
committer | Paul Rouget <me@paulrouget.com> | 2019-07-03 21:35:44 +0200 |
commit | 7a3d346087dcc09112bf1bc13ec70de42ede509d (patch) | |
tree | f4d26d9306fffb57865650967eebf3a5ea4992b0 | |
parent | f2e0870e60dfd4bf4233ac00c6bc46ab95f22067 (diff) | |
download | servo-7a3d346087dcc09112bf1bc13ec70de42ede509d.tar.gz servo-7a3d346087dcc09112bf1bc13ec70de42ede509d.zip |
Simplify build process for UWP app.
-rw-r--r-- | components/servo/Cargo.toml | 3 | ||||
-rw-r--r-- | ports/glutin/Cargo.toml | 1 | ||||
-rw-r--r-- | ports/libmlservo/Cargo.toml | 1 | ||||
-rw-r--r-- | ports/libsimpleservo/api/Cargo.toml | 1 | ||||
-rw-r--r-- | ports/libsimpleservo/capi/Cargo.toml | 1 | ||||
-rw-r--r-- | ports/libsimpleservo/jniapi/Cargo.toml | 1 | ||||
-rw-r--r-- | python/servo/build_commands.py | 24 | ||||
-rw-r--r-- | python/servo/command_base.py | 12 |
8 files changed, 39 insertions, 5 deletions
diff --git a/components/servo/Cargo.toml b/components/servo/Cargo.toml index de870ef2e0f..d64ab06149a 100644 --- a/components/servo/Cargo.toml +++ b/components/servo/Cargo.toml @@ -15,6 +15,7 @@ crate-type = ["rlib"] canvas2d-azure = ["canvas/canvas2d-azure"] canvas2d-raqote = ["canvas/canvas2d-raqote"] debugmozjs = ["script/debugmozjs"] +egl = ["mozangle/egl"] energy-profiling = ["profile_traits/energy-profiling"] profilemozjs = ["script/profilemozjs"] googlevr = ["webvr/googlevr"] @@ -85,4 +86,4 @@ git = "https://github.com/servo/media" git = "https://github.com/servo/media" [target.'cfg(target_os = "windows")'.dependencies] -mozangle = { version = "0.2", features = ["egl"] } +mozangle = {version = "0.2"} diff --git a/ports/glutin/Cargo.toml b/ports/glutin/Cargo.toml index a75452b2660..d7de6a491d2 100644 --- a/ports/glutin/Cargo.toml +++ b/ports/glutin/Cargo.toml @@ -30,6 +30,7 @@ ProductName = "Servo" canvas2d-azure = ["libservo/canvas2d-azure"] canvas2d-raqote = ["libservo/canvas2d-raqote"] default = ["webdriver", "max_log_level"] +egl = ["libservo/egl"] energy-profiling = ["libservo/energy-profiling"] debugmozjs = ["libservo/debugmozjs"] js_backtrace = ["libservo/js_backtrace"] diff --git a/ports/libmlservo/Cargo.toml b/ports/libmlservo/Cargo.toml index 0c8389269c3..9942d95baac 100644 --- a/ports/libmlservo/Cargo.toml +++ b/ports/libmlservo/Cargo.toml @@ -15,6 +15,7 @@ bench = false [features] canvas2d-azure = ["simpleservo/canvas2d-azure"] canvas2d-raqote = ["simpleservo/canvas2d-raqote"] +egl = ["simpleservo/egl"] [dependencies] libservo = { path = "../../components/servo", features = ["no_static_freetype"] } diff --git a/ports/libsimpleservo/api/Cargo.toml b/ports/libsimpleservo/api/Cargo.toml index 68f0b7f1816..6dd0c7c014a 100644 --- a/ports/libsimpleservo/api/Cargo.toml +++ b/ports/libsimpleservo/api/Cargo.toml @@ -30,6 +30,7 @@ canvas2d-azure = ["libservo/canvas2d-azure"] canvas2d-raqote = ["libservo/canvas2d-raqote"] default = ["webdriver", "max_log_level"] debugmozjs = ["libservo/debugmozjs"] +egl = ["libservo/egl"] energy-profiling = ["libservo/energy-profiling"] googlevr = ["libservo/googlevr"] js_backtrace = ["libservo/js_backtrace"] diff --git a/ports/libsimpleservo/capi/Cargo.toml b/ports/libsimpleservo/capi/Cargo.toml index 8bcf34aad0b..8c6707a02aa 100644 --- a/ports/libsimpleservo/capi/Cargo.toml +++ b/ports/libsimpleservo/capi/Cargo.toml @@ -25,6 +25,7 @@ canvas2d-azure = ["simpleservo/canvas2d-azure"] canvas2d-raqote = ["simpleservo/canvas2d-raqote"] debugmozjs = ["simpleservo/debugmozjs"] default = ["webdriver", "max_log_level"] +egl = ["simpleservo/egl"] energy-profiling = ["simpleservo/energy-profiling"] googlevr = ["simpleservo/googlevr"] js_backtrace = ["simpleservo/js_backtrace"] diff --git a/ports/libsimpleservo/jniapi/Cargo.toml b/ports/libsimpleservo/jniapi/Cargo.toml index 98838fafcb3..5f5098a4c4f 100644 --- a/ports/libsimpleservo/jniapi/Cargo.toml +++ b/ports/libsimpleservo/jniapi/Cargo.toml @@ -30,6 +30,7 @@ canvas2d-azure = ["simpleservo/canvas2d-azure"] canvas2d-raqote = ["simpleservo/canvas2d-raqote"] debugmozjs = ["simpleservo/debugmozjs"] default = ["webdriver", "max_log_level"] +egl = ["simpleservo/egl"] energy-profiling = ["simpleservo/energy-profiling"] googlevr = ["simpleservo/googlevr"] js_backtrace = ["simpleservo/js_backtrace"] diff --git a/python/servo/build_commands.py b/python/servo/build_commands.py index 3937b73efd0..191ce44bb8a 100644 --- a/python/servo/build_commands.py +++ b/python/servo/build_commands.py @@ -30,7 +30,7 @@ from mach.decorators import ( from mach.registrar import Registrar from mach_bootstrap import _get_exec_path -from servo.command_base import CommandBase, cd, call, check_call, BIN_SUFFIX +from servo.command_base import CommandBase, cd, call, check_call, BIN_SUFFIX, append_to_path_env from servo.util import host_triple @@ -169,7 +169,7 @@ class MachCommands(CommandBase): @CommandBase.build_like_command_arguments def build(self, release=False, dev=False, jobs=None, params=None, no_package=False, verbose=False, very_verbose=False, - target=None, android=False, magicleap=False, libsimpleservo=False, + target=None, android=False, magicleap=False, libsimpleservo=False, uwp=False, features=None, **kwargs): opts = params or [] features = features or [] @@ -240,6 +240,21 @@ class MachCommands(CommandBase): env['CXXFLAGS'] = '' env["CXXFLAGS"] += "-mmacosx-version-min=10.10" + if uwp: + # Don't try and build a desktop port. + libsimpleservo = True + + # Ensure that the NuGet ANGLE package containing libEGL is accessible + # to the Rust linker. + append_to_path_env( + path.join( + os.getcwd(), "support", "hololens", "packages", + "ANGLE.WindowsStore.2.1.13", "bin", "UAP", "x64" + ), + env, + "LIB" + ) + if android: if "ANDROID_NDK" not in env: print("Please set the ANDROID_NDK environment variable.") @@ -532,7 +547,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, + target=target, android=android, magicleap=magicleap, libsimpleservo=libsimpleservo, uwp=uwp, features=features, **kwargs ) status = 0 @@ -585,7 +600,8 @@ class MachCommands(CommandBase): for lib in libs: print("WARNING: could not find " + lib) - package_generated_shared_libraries(["libEGL.dll"], build_path, servo_exe_dir) + if not uwp: + package_generated_shared_libraries(["libEGL.dll"], build_path, servo_exe_dir) # copy needed gstreamer DLLs in to servo.exe dir target_triple = target or host_triple() diff --git a/python/servo/command_base.py b/python/servo/command_base.py index 838e03f910c..265d2814eb6 100644 --- a/python/servo/command_base.py +++ b/python/servo/command_base.py @@ -782,6 +782,11 @@ install them, let us know by filing a bug!") action='store_true', help='Build with frame pointer enabled, used by the background hang monitor.', ), + CommandArgument( + '--uwp', + default=None, + action='store_true', + help='Build for HoloLens (x64)'), CommandArgument('--with-raqote', default=None, action='store_true'), CommandArgument('--without-wgl', default=None, action='store_true'), ] @@ -809,6 +814,7 @@ install them, let us know by filing a bug!") target=None, android=False, magicleap=False, libsimpleservo=False, features=None, debug_mozjs=False, with_debug_assertions=False, with_frame_pointer=False, with_raqote=False, without_wgl=False, + uwp=False, ): env = env or self.build_env() target, android = self.pick_target_triple(target, android, magicleap) @@ -836,6 +842,12 @@ install them, let us know by filing a bug!") features.append("debugmozjs") if not magicleap: features.append("native-bluetooth") + if uwp: + features.append("canvas2d-raqote") + features.append("no_wgl") + else: + # Non-UWP builds provide their own libEGL via mozangle. + features.append("egl") if with_raqote and "canvas2d-azure" not in features: features.append("canvas2d-raqote") elif "canvas2d-raqote" not in features: |