mirror of
https://github.com/servo/servo.git
synced 2025-07-26 16:50:23 +01:00
Create mach package
* Split package commands into their own file * Delete spurious files from build dir * Create runservo.sh to invoke servo with the right browserhtml incantation * Tar it all up with the date and time in the filename
This commit is contained in:
parent
b389ecda67
commit
a1a8e08dca
3 changed files with 145 additions and 62 deletions
|
@ -23,7 +23,7 @@ from mach.decorators import (
|
|||
Command,
|
||||
)
|
||||
|
||||
from servo.command_base import CommandBase, cd, call, check_call, BuildNotFound
|
||||
from servo.command_base import CommandBase, cd, call, check_call
|
||||
|
||||
|
||||
def read_file(filename, if_exists=False):
|
||||
|
@ -229,64 +229,3 @@ class PostBuildCommands(CommandBase):
|
|||
import webbrowser
|
||||
webbrowser.open("file://" + path.abspath(path.join(
|
||||
self.get_target_dir(), "doc", "servo", "index.html")))
|
||||
|
||||
@Command('package',
|
||||
description='Package Servo (currently, Android APK only)',
|
||||
category='post-build')
|
||||
@CommandArgument('--release', '-r', action='store_true',
|
||||
help='Package the release build')
|
||||
@CommandArgument('--dev', '-d', action='store_true',
|
||||
help='Package the dev build')
|
||||
def package(self, release=False, dev=False, debug=False, debugger=None):
|
||||
env = self.build_env()
|
||||
binary_path = self.get_binary_path(release, dev, android=True)
|
||||
|
||||
if dev:
|
||||
env["NDK_DEBUG"] = "1"
|
||||
env["ANT_FLAVOR"] = "debug"
|
||||
dev_flag = "-d"
|
||||
else:
|
||||
env["ANT_FLAVOR"] = "release"
|
||||
dev_flag = ""
|
||||
|
||||
target_dir = os.path.dirname(binary_path)
|
||||
output_apk = "{}.apk".format(binary_path)
|
||||
try:
|
||||
with cd(path.join("support", "android", "build-apk")):
|
||||
subprocess.check_call(["cargo", "run", "--", dev_flag, "-o", output_apk, "-t", target_dir,
|
||||
"-r", self.get_top_dir()], env=env)
|
||||
except subprocess.CalledProcessError as e:
|
||||
print("Packaging Android exited with return value %d" % e.returncode)
|
||||
return e.returncode
|
||||
|
||||
@Command('install',
|
||||
description='Install Servo (currently, Android only)',
|
||||
category='post-build')
|
||||
@CommandArgument('--release', '-r', action='store_true',
|
||||
help='Package the release build')
|
||||
@CommandArgument('--dev', '-d', action='store_true',
|
||||
help='Package the dev build')
|
||||
def install(self, release=False, dev=False):
|
||||
try:
|
||||
binary_path = self.get_binary_path(release, dev, android=True)
|
||||
except BuildNotFound:
|
||||
print("Servo build not found. Building servo...")
|
||||
result = Registrar.dispatch(
|
||||
"build", context=self.context, release=release, dev=dev
|
||||
)
|
||||
if result:
|
||||
return result
|
||||
try:
|
||||
binary_path = self.get_binary_path(release, dev, android=True)
|
||||
except BuildNotFound:
|
||||
print("Rebuilding Servo did not solve the missing build problem.")
|
||||
return 1
|
||||
|
||||
apk_path = binary_path + ".apk"
|
||||
if not path.exists(apk_path):
|
||||
result = Registrar.dispatch("package", context=self.context, release=release, dev=dev)
|
||||
if result is not 0:
|
||||
return result
|
||||
|
||||
print(["adb", "install", "-r", apk_path])
|
||||
return subprocess.call(["adb", "install", "-r", apk_path], env=self.build_env())
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue