diff options
author | Googler <noreply@google.com> | 2017-03-21 00:51:44 +0000 |
---|---|---|
committer | Yue Gan <yueg@google.com> | 2017-03-21 12:52:55 +0000 |
commit | 8d54969c537745271bc230873ab574dce5da891b (patch) | |
tree | 45f62e7b2845fc698e8fda8dd46a7bf73ccfa0ea /src/tools/android/java/com/google/devtools/build/android/AndroidResourceProcessor.java | |
parent | 5ad10d11a90afe19d50a68cb72b861508362e14b (diff) |
adds feature_of and feature_after attrs to android_binary. these are android_binary rules whose .apk artifacts get piped through appt to support split apks
--
PiperOrigin-RevId: 150701976
MOS_MIGRATED_REVID=150701976
Diffstat (limited to 'src/tools/android/java/com/google/devtools/build/android/AndroidResourceProcessor.java')
-rw-r--r-- | src/tools/android/java/com/google/devtools/build/android/AndroidResourceProcessor.java | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/src/tools/android/java/com/google/devtools/build/android/AndroidResourceProcessor.java b/src/tools/android/java/com/google/devtools/build/android/AndroidResourceProcessor.java index e33928d19c..836c3855cb 100644 --- a/src/tools/android/java/com/google/devtools/build/android/AndroidResourceProcessor.java +++ b/src/tools/android/java/com/google/devtools/build/android/AndroidResourceProcessor.java @@ -97,6 +97,20 @@ public class AndroidResourceProcessor { help = "Aapt tool location for resource packaging.") public Path aapt; + @Option(name = "featureOf", + defaultValue = "null", + converter = ExistingPathConverter.class, + category = "config", + help = "Base apk path.") + public Path featureOf; + + @Option(name = "featureAfter", + defaultValue = "null", + converter = ExistingPathConverter.class, + category = "config", + help = "Apk path of previous split (if any).") + public Path featureAfter; + @Option(name = "annotationJar", defaultValue = "null", converter = ExistingPathConverter.class, @@ -206,8 +220,18 @@ public class AndroidResourceProcessor { @Override public List<String> getAdditionalParameters() { - return ImmutableList.of(); + List<String> params = new java.util.ArrayList<String>(); + if (options.featureOf != null) { + params.add("--feature-of"); + params.add(options.featureOf.toString()); + } + if (options.featureAfter != null) { + params.add("--feature-after"); + params.add(options.featureAfter.toString()); + } + return ImmutableList.copyOf(params); } + } private final StdLogger stdLogger; @@ -352,6 +376,9 @@ public class AndroidResourceProcessor { .add("-c", Joiner.on(',').join(resourceConfigs)) // Split APKs if any splits were specified. .whenVersionIsAtLeast(new Revision(23)).thenAddRepeated("--split", splits); + for (String additional : aaptOptions.getAdditionalParameters()) { + commandBuilder.add(additional); + } try { new CommandLineRunner(stdLogger).runCmdLine(commandBuilder.build(), null); } catch (LoggedErrorException e) { |