mirror of
https://github.com/servo/servo.git
synced 2025-06-14 19:34:29 +00:00
Auto merge of #23696 - servo:hl, r=jdm
Add UWP port - bis
This is #23658 with some fixes:
- removed nspr from DLL dependencies (was breaking VS build)
- exclude symbols from header file (was breaking VS build)
- rebased
Before merging:
- please check the rebased commit that introduces the `--uwp` option (things moved around since 7c85dc09b5
)
- should we wait until the WR fix lands upstream?
<!-- 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/23696)
<!-- Reviewable:end -->
This commit is contained in:
commit
b32bff3b97
43 changed files with 1670 additions and 86 deletions
|
@ -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
|
||||
)
|
||||
|
||||
|
@ -584,7 +599,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()
|
||||
|
|
|
@ -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:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue