Reduce duplication in binary path determinition for Android target (fixes issue #8349)

This commit is contained in:
Yanir Seroussi 2015-11-19 14:35:10 +11:00
parent a5babb89a0
commit 4b71bc5c42
3 changed files with 10 additions and 9 deletions

View file

@ -198,7 +198,7 @@ class MachCommands(CommandBase):
if verbose: if verbose:
opts += ["-v"] opts += ["-v"]
if android: if android:
opts += ["--target", "arm-linux-androideabi"] opts += ["--target", self.config["android"]["target"]]
if debug_mozjs or self.config["build"]["debug-mozjs"]: if debug_mozjs or self.config["build"]["debug-mozjs"]:
features += ["script/debugmozjs"] features += ["script/debugmozjs"]
@ -298,7 +298,6 @@ class MachCommands(CommandBase):
def build_gonk(self, jobs=None, verbose=False, release=False): def build_gonk(self, jobs=None, verbose=False, release=False):
self.ensure_bootstrapped() self.ensure_bootstrapped()
ret = None
opts = [] opts = []
if jobs is not None: if jobs is not None:
opts += ["-j", jobs] opts += ["-j", jobs]
@ -307,7 +306,7 @@ class MachCommands(CommandBase):
if release: if release:
opts += ["--release"] opts += ["--release"]
opts += ["--target", "arm-linux-androideabi"] opts += ["--target", self.config["android"]["target"]]
env = self.build_env(gonk=True) env = self.build_env(gonk=True)
build_start = time() build_start = time()
with cd(path.join("ports", "gonk")): with cd(path.join("ports", "gonk")):

View file

@ -113,6 +113,7 @@ class CommandBase(object):
self.config["android"].setdefault("sdk", "") self.config["android"].setdefault("sdk", "")
self.config["android"].setdefault("ndk", "") self.config["android"].setdefault("ndk", "")
self.config["android"].setdefault("toolchain", "") self.config["android"].setdefault("toolchain", "")
self.config["android"].setdefault("target", "arm-linux-androideabi")
self.config.setdefault("gonk", {}) self.config.setdefault("gonk", {})
self.config["gonk"].setdefault("b2g", "") self.config["gonk"].setdefault("b2g", "")
@ -145,8 +146,10 @@ class CommandBase(object):
else: else:
return path.join(self.context.topdir, "target") return path.join(self.context.topdir, "target")
def get_binary_path(self, release, dev): def get_binary_path(self, release, dev, android=False):
base_path = self.get_target_dir() base_path = self.get_target_dir()
if android:
base_path = path.join(base_path, self.config["android"]["target"])
release_path = path.join(base_path, "release", "servo") release_path = path.join(base_path, "release", "servo")
dev_path = path.join(base_path, "debug", "servo") dev_path = path.join(base_path, "debug", "servo")

View file

@ -199,19 +199,18 @@ class PostBuildCommands(CommandBase):
help="Command-line arguments to be passed through to Servo") help="Command-line arguments to be passed through to Servo")
def package(self, params, release=False, dev=False, debug=False, debugger=None): def package(self, params, release=False, dev=False, debug=False, debugger=None):
env = self.build_env() env = self.build_env()
target_dir = path.join(self.get_target_dir(), "arm-linux-androideabi") binary_path = self.get_binary_path(release, dev, android=True)
dev_flag = ""
if dev: if dev:
env["NDK_DEBUG"] = "1" env["NDK_DEBUG"] = "1"
env["ANT_FLAVOR"] = "debug" env["ANT_FLAVOR"] = "debug"
dev_flag = "-d" dev_flag = "-d"
target_dir = path.join(target_dir, "debug")
else: else:
env["ANT_FLAVOR"] = "release" env["ANT_FLAVOR"] = "release"
target_dir = path.join(target_dir, "release") dev_flag = ""
output_apk = path.join(target_dir, "servo.apk") target_dir = os.path.dirname(binary_path)
output_apk = "{}.apk".format(binary_path)
try: try:
with cd(path.join("support", "android", "build-apk")): with cd(path.join("support", "android", "build-apk")):
subprocess.check_call(["cargo", "run", "--", dev_flag, "-o", output_apk, "-t", target_dir, subprocess.check_call(["cargo", "run", "--", dev_flag, "-o", output_apk, "-t", target_dir,