mirror of
https://github.com/servo/servo.git
synced 2025-06-16 04:14:29 +00:00
Make APPX build part of package command. Add nightly build for UWP.
This commit is contained in:
parent
2b31c0a644
commit
c1f9dfda25
7 changed files with 157 additions and 125 deletions
|
@ -67,6 +67,9 @@ PACKAGES = {
|
|||
r'target\release\msi\Servo.exe',
|
||||
r'target\release\msi\Servo.zip',
|
||||
],
|
||||
'uwp': [
|
||||
r'support\hololens\AppPackages\ServoApp\ServoApp_1.0.0.0_Test\ServoApp_1.0.0.0_x64_arm64.appxbundle',
|
||||
],
|
||||
}
|
||||
|
||||
|
||||
|
@ -202,8 +205,12 @@ class PackageCommands(CommandBase):
|
|||
default=None,
|
||||
action='store_true',
|
||||
help='Create a local Maven repository')
|
||||
@CommandArgument('--uwp',
|
||||
default=None,
|
||||
action='append',
|
||||
help='Create an APPX package')
|
||||
def package(self, release=False, dev=False, android=None, magicleap=None, debug=False,
|
||||
debugger=None, target=None, flavor=None, maven=False):
|
||||
debugger=None, target=None, flavor=None, maven=False, uwp=None):
|
||||
if android is None:
|
||||
android = self.config["build"]["android"]
|
||||
if target and android:
|
||||
|
@ -219,10 +226,16 @@ class PackageCommands(CommandBase):
|
|||
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)
|
||||
binary_path = self.get_binary_path(
|
||||
release, dev, target=target, android=android, magicleap=magicleap,
|
||||
simpleservo=uwp is not None
|
||||
)
|
||||
dir_to_root = self.get_top_dir()
|
||||
target_dir = path.dirname(binary_path)
|
||||
if magicleap:
|
||||
if uwp:
|
||||
vs_info = self.vs_dirs()
|
||||
build_uwp(uwp, dev, vs_info['msbuild'])
|
||||
elif magicleap:
|
||||
if platform.system() not in ["Darwin"]:
|
||||
raise Exception("Magic Leap builds are only supported on macOS.")
|
||||
if not env.get("MAGICLEAP_SDK"):
|
||||
|
@ -724,3 +737,32 @@ class PackageCommands(CommandBase):
|
|||
update_brew(packages[0], timestamp)
|
||||
|
||||
return 0
|
||||
|
||||
|
||||
def build_uwp(platforms, dev, msbuild_dir):
|
||||
if any(map(lambda p: p not in ['x64', 'x86', 'arm64'], platforms)):
|
||||
raise Exception("Unsupported appx platforms: " + str(platforms))
|
||||
if dev and len(platforms) > 1:
|
||||
raise Exception("Debug package with multiple architectures is unsupported")
|
||||
|
||||
if dev:
|
||||
Configuration = "Debug"
|
||||
else:
|
||||
Configuration = "Release"
|
||||
|
||||
msbuild = path.join(msbuild_dir, "msbuild.exe")
|
||||
build_file_template = path.join('support', 'hololens', 'package.msbuild')
|
||||
with open(build_file_template) as f:
|
||||
template_contents = f.read()
|
||||
build_file = tempfile.NamedTemporaryFile(delete=False)
|
||||
build_file.write(
|
||||
template_contents
|
||||
.replace("%%BUILD_PLATFORMS%%", ';'.join(platforms))
|
||||
.replace("%%PACKAGE_PLATFORMS%%", '|'.join(platforms))
|
||||
.replace("%%CONFIGURATION%%", Configuration)
|
||||
.replace("%%SOLUTION%%", path.join(os.getcwd(), 'support', 'hololens', 'ServoApp.sln'))
|
||||
)
|
||||
build_file.close()
|
||||
# Generate an appxbundle.
|
||||
subprocess.check_call([msbuild, "/m", build_file.name])
|
||||
os.unlink(build_file.name)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue