aboutsummaryrefslogtreecommitdiffstats
path: root/python/servo/command_base.py
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2017-05-13 10:24:29 -0500
committerGitHub <noreply@github.com>2017-05-13 10:24:29 -0500
commit286bfb96a06705e37e690be07a51f5e1797f35b0 (patch)
treebe4fc497a0f959ca4f73fb9b476149c52bbb7207 /python/servo/command_base.py
parent2766529c2450ba3fac1b7669c195869a0f7e341b (diff)
parent01228282cd7725a1c8d822006a42acc84c4eef2c (diff)
downloadservo-286bfb96a06705e37e690be07a51f5e1797f35b0.tar.gz
servo-286bfb96a06705e37e690be07a51f5e1797f35b0.zip
Auto merge of #16769 - MortimerGoro:android_archs, r=larsbergstrom
Support for Android armv7 and aarch64 target triples <!-- Please describe your changes on the following line: --> Support for Android armv7 and aarch64 target triples in python build scripts (build + packaging) `--android` build parameter works as always (arm-linux-androideabi still the default) `./mach build --release --android` New compilation modes for android `./mach build --release --target=arm-linux-androideabi` `./mach build --release --target=armv7-linux-androideabi` `./mach build --release --target=aarch64-linux-android` See https://github.com/servo/servo/issues/11921. When all crates are ready we'll switch default android compilations to` armv7-linux-androideabi` target triple. --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: --> - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [ ] These changes fix #__ (github issue number if applicable). <!-- Either: --> - [x] There are tests for these changes OR - [ ] These changes do not require tests because _____ <!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.--> <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. --> <!-- 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/16769) <!-- Reviewable:end -->
Diffstat (limited to 'python/servo/command_base.py')
-rw-r--r--python/servo/command_base.py29
1 files changed, 26 insertions, 3 deletions
diff --git a/python/servo/command_base.py b/python/servo/command_base.py
index 7ab5191b41a..8f04fde27e4 100644
--- a/python/servo/command_base.py
+++ b/python/servo/command_base.py
@@ -277,8 +277,7 @@ class CommandBase(object):
self.config["android"].setdefault("sdk", "")
self.config["android"].setdefault("ndk", "")
self.config["android"].setdefault("toolchain", "")
- self.config["android"].setdefault("platform", "android-18")
- self.config["android"].setdefault("target", "arm-linux-androideabi")
+ self.handle_android_target("arm-linux-androideabi")
self.set_cargo_root()
self.set_use_stable_rust(False)
@@ -538,7 +537,31 @@ class CommandBase(object):
return path.join(self.context.topdir, "support", "android")
def android_build_dir(self, dev):
- return path.join(self.get_target_dir(), "arm-linux-androideabi", "debug" if dev else "release")
+ return path.join(self.get_target_dir(), self.config["android"]["target"], "debug" if dev else "release")
+
+ def handle_android_target(self, target):
+ if target == "arm-linux-androideabi":
+ self.config["android"]["platform"] = "android-18"
+ self.config["android"]["target"] = target
+ self.config["android"]["arch"] = "arm"
+ self.config["android"]["lib"] = "armeabi"
+ self.config["android"]["toolchain_name"] = target + "-4.9"
+ return True
+ elif target == "armv7-linux-androideabi":
+ self.config["android"]["platform"] = "android-18"
+ self.config["android"]["target"] = target
+ self.config["android"]["arch"] = "arm"
+ self.config["android"]["lib"] = "armeabi-v7a"
+ self.config["android"]["toolchain_name"] = "arm-linux-androideabi-4.9"
+ return True
+ elif target == "aarch64-linux-android":
+ self.config["android"]["platform"] = "android-21"
+ self.config["android"]["target"] = target
+ self.config["android"]["arch"] = "arm64"
+ self.config["android"]["lib"] = "arm64-v8a"
+ self.config["android"]["toolchain_name"] = target + "-4.9"
+ return True
+ return False
def ensure_bootstrapped(self, target=None):
if self.context.bootstrapped: