mirror of
https://github.com/servo/servo.git
synced 2025-07-23 07:13:52 +01:00
Simplify build process for UWP app.
This commit is contained in:
parent
f2e0870e60
commit
7a3d346087
8 changed files with 39 additions and 5 deletions
|
@ -15,6 +15,7 @@ crate-type = ["rlib"]
|
||||||
canvas2d-azure = ["canvas/canvas2d-azure"]
|
canvas2d-azure = ["canvas/canvas2d-azure"]
|
||||||
canvas2d-raqote = ["canvas/canvas2d-raqote"]
|
canvas2d-raqote = ["canvas/canvas2d-raqote"]
|
||||||
debugmozjs = ["script/debugmozjs"]
|
debugmozjs = ["script/debugmozjs"]
|
||||||
|
egl = ["mozangle/egl"]
|
||||||
energy-profiling = ["profile_traits/energy-profiling"]
|
energy-profiling = ["profile_traits/energy-profiling"]
|
||||||
profilemozjs = ["script/profilemozjs"]
|
profilemozjs = ["script/profilemozjs"]
|
||||||
googlevr = ["webvr/googlevr"]
|
googlevr = ["webvr/googlevr"]
|
||||||
|
@ -85,4 +86,4 @@ git = "https://github.com/servo/media"
|
||||||
git = "https://github.com/servo/media"
|
git = "https://github.com/servo/media"
|
||||||
|
|
||||||
[target.'cfg(target_os = "windows")'.dependencies]
|
[target.'cfg(target_os = "windows")'.dependencies]
|
||||||
mozangle = { version = "0.2", features = ["egl"] }
|
mozangle = {version = "0.2"}
|
||||||
|
|
|
@ -30,6 +30,7 @@ ProductName = "Servo"
|
||||||
canvas2d-azure = ["libservo/canvas2d-azure"]
|
canvas2d-azure = ["libservo/canvas2d-azure"]
|
||||||
canvas2d-raqote = ["libservo/canvas2d-raqote"]
|
canvas2d-raqote = ["libservo/canvas2d-raqote"]
|
||||||
default = ["webdriver", "max_log_level"]
|
default = ["webdriver", "max_log_level"]
|
||||||
|
egl = ["libservo/egl"]
|
||||||
energy-profiling = ["libservo/energy-profiling"]
|
energy-profiling = ["libservo/energy-profiling"]
|
||||||
debugmozjs = ["libservo/debugmozjs"]
|
debugmozjs = ["libservo/debugmozjs"]
|
||||||
js_backtrace = ["libservo/js_backtrace"]
|
js_backtrace = ["libservo/js_backtrace"]
|
||||||
|
|
|
@ -15,6 +15,7 @@ bench = false
|
||||||
[features]
|
[features]
|
||||||
canvas2d-azure = ["simpleservo/canvas2d-azure"]
|
canvas2d-azure = ["simpleservo/canvas2d-azure"]
|
||||||
canvas2d-raqote = ["simpleservo/canvas2d-raqote"]
|
canvas2d-raqote = ["simpleservo/canvas2d-raqote"]
|
||||||
|
egl = ["simpleservo/egl"]
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
libservo = { path = "../../components/servo", features = ["no_static_freetype"] }
|
libservo = { path = "../../components/servo", features = ["no_static_freetype"] }
|
||||||
|
|
|
@ -30,6 +30,7 @@ canvas2d-azure = ["libservo/canvas2d-azure"]
|
||||||
canvas2d-raqote = ["libservo/canvas2d-raqote"]
|
canvas2d-raqote = ["libservo/canvas2d-raqote"]
|
||||||
default = ["webdriver", "max_log_level"]
|
default = ["webdriver", "max_log_level"]
|
||||||
debugmozjs = ["libservo/debugmozjs"]
|
debugmozjs = ["libservo/debugmozjs"]
|
||||||
|
egl = ["libservo/egl"]
|
||||||
energy-profiling = ["libservo/energy-profiling"]
|
energy-profiling = ["libservo/energy-profiling"]
|
||||||
googlevr = ["libservo/googlevr"]
|
googlevr = ["libservo/googlevr"]
|
||||||
js_backtrace = ["libservo/js_backtrace"]
|
js_backtrace = ["libservo/js_backtrace"]
|
||||||
|
|
|
@ -25,6 +25,7 @@ canvas2d-azure = ["simpleservo/canvas2d-azure"]
|
||||||
canvas2d-raqote = ["simpleservo/canvas2d-raqote"]
|
canvas2d-raqote = ["simpleservo/canvas2d-raqote"]
|
||||||
debugmozjs = ["simpleservo/debugmozjs"]
|
debugmozjs = ["simpleservo/debugmozjs"]
|
||||||
default = ["webdriver", "max_log_level"]
|
default = ["webdriver", "max_log_level"]
|
||||||
|
egl = ["simpleservo/egl"]
|
||||||
energy-profiling = ["simpleservo/energy-profiling"]
|
energy-profiling = ["simpleservo/energy-profiling"]
|
||||||
googlevr = ["simpleservo/googlevr"]
|
googlevr = ["simpleservo/googlevr"]
|
||||||
js_backtrace = ["simpleservo/js_backtrace"]
|
js_backtrace = ["simpleservo/js_backtrace"]
|
||||||
|
|
|
@ -30,6 +30,7 @@ canvas2d-azure = ["simpleservo/canvas2d-azure"]
|
||||||
canvas2d-raqote = ["simpleservo/canvas2d-raqote"]
|
canvas2d-raqote = ["simpleservo/canvas2d-raqote"]
|
||||||
debugmozjs = ["simpleservo/debugmozjs"]
|
debugmozjs = ["simpleservo/debugmozjs"]
|
||||||
default = ["webdriver", "max_log_level"]
|
default = ["webdriver", "max_log_level"]
|
||||||
|
egl = ["simpleservo/egl"]
|
||||||
energy-profiling = ["simpleservo/energy-profiling"]
|
energy-profiling = ["simpleservo/energy-profiling"]
|
||||||
googlevr = ["simpleservo/googlevr"]
|
googlevr = ["simpleservo/googlevr"]
|
||||||
js_backtrace = ["simpleservo/js_backtrace"]
|
js_backtrace = ["simpleservo/js_backtrace"]
|
||||||
|
|
|
@ -30,7 +30,7 @@ from mach.decorators import (
|
||||||
from mach.registrar import Registrar
|
from mach.registrar import Registrar
|
||||||
|
|
||||||
from mach_bootstrap import _get_exec_path
|
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
|
from servo.util import host_triple
|
||||||
|
|
||||||
|
|
||||||
|
@ -169,7 +169,7 @@ class MachCommands(CommandBase):
|
||||||
@CommandBase.build_like_command_arguments
|
@CommandBase.build_like_command_arguments
|
||||||
def build(self, release=False, dev=False, jobs=None, params=None,
|
def build(self, release=False, dev=False, jobs=None, params=None,
|
||||||
no_package=False, verbose=False, very_verbose=False,
|
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):
|
features=None, **kwargs):
|
||||||
opts = params or []
|
opts = params or []
|
||||||
features = features or []
|
features = features or []
|
||||||
|
@ -240,6 +240,21 @@ class MachCommands(CommandBase):
|
||||||
env['CXXFLAGS'] = ''
|
env['CXXFLAGS'] = ''
|
||||||
env["CXXFLAGS"] += "-mmacosx-version-min=10.10"
|
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:
|
||||||
if "ANDROID_NDK" not in env:
|
if "ANDROID_NDK" not in env:
|
||||||
print("Please set the ANDROID_NDK environment variable.")
|
print("Please set the ANDROID_NDK environment variable.")
|
||||||
|
@ -532,7 +547,7 @@ class MachCommands(CommandBase):
|
||||||
|
|
||||||
status = self.run_cargo_build_like_command(
|
status = self.run_cargo_build_like_command(
|
||||||
"build", opts, env=env, verbose=verbose,
|
"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
|
features=features, **kwargs
|
||||||
)
|
)
|
||||||
status = 0
|
status = 0
|
||||||
|
@ -585,6 +600,7 @@ class MachCommands(CommandBase):
|
||||||
for lib in libs:
|
for lib in libs:
|
||||||
print("WARNING: could not find " + lib)
|
print("WARNING: could not find " + lib)
|
||||||
|
|
||||||
|
if not uwp:
|
||||||
package_generated_shared_libraries(["libEGL.dll"], build_path, servo_exe_dir)
|
package_generated_shared_libraries(["libEGL.dll"], build_path, servo_exe_dir)
|
||||||
|
|
||||||
# copy needed gstreamer DLLs in to servo.exe dir
|
# copy needed gstreamer DLLs in to servo.exe dir
|
||||||
|
|
|
@ -782,6 +782,11 @@ install them, let us know by filing a bug!")
|
||||||
action='store_true',
|
action='store_true',
|
||||||
help='Build with frame pointer enabled, used by the background hang monitor.',
|
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('--with-raqote', default=None, action='store_true'),
|
||||||
CommandArgument('--without-wgl', 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,
|
target=None, android=False, magicleap=False, libsimpleservo=False,
|
||||||
features=None, debug_mozjs=False, with_debug_assertions=False,
|
features=None, debug_mozjs=False, with_debug_assertions=False,
|
||||||
with_frame_pointer=False, with_raqote=False, without_wgl=False,
|
with_frame_pointer=False, with_raqote=False, without_wgl=False,
|
||||||
|
uwp=False,
|
||||||
):
|
):
|
||||||
env = env or self.build_env()
|
env = env or self.build_env()
|
||||||
target, android = self.pick_target_triple(target, android, magicleap)
|
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")
|
features.append("debugmozjs")
|
||||||
if not magicleap:
|
if not magicleap:
|
||||||
features.append("native-bluetooth")
|
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:
|
if with_raqote and "canvas2d-azure" not in features:
|
||||||
features.append("canvas2d-raqote")
|
features.append("canvas2d-raqote")
|
||||||
elif "canvas2d-raqote" not in features:
|
elif "canvas2d-raqote" not in features:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue