Skip to content

Instantly share code, notes, and snippets.

@mlc
Last active December 19, 2015 04:29
Show Gist options
  • Save mlc/5897934 to your computer and use it in GitHub Desktop.
Save mlc/5897934 to your computer and use it in GitHub Desktop.
proposed changes to android build system to support aapt's -c option
diff --git a/builder-model/src/main/java/com/android/builder/model/AaptOptions.java b/builder-model/src/main/java/com/android/builder/model/AaptOptions.java
index 86192e0..6b42479 100644
--- a/builder-model/src/main/java/com/android/builder/model/AaptOptions.java
+++ b/builder-model/src/main/java/com/android/builder/model/AaptOptions.java
@@ -31,4 +31,9 @@ public interface AaptOptions {
* Returns the list of values for the -0 (disabled compression) option, or null
*/
List<String> getNoCompress();
+
+ /**
+ * Returns the list of values for the -c (configuratoins) option, or null
+ */
+ List<String> getConfigurations();
}
diff --git a/builder/src/main/java/com/android/builder/AndroidBuilder.java b/builder/src/main/java/com/android/builder/AndroidBuilder.java
index 511e2b1..ec48b7c 100644
--- a/builder/src/main/java/com/android/builder/AndroidBuilder.java
+++ b/builder/src/main/java/com/android/builder/AndroidBuilder.java
@@ -50,6 +50,7 @@ import com.android.sdklib.BuildToolInfo;
import com.android.sdklib.IAndroidTarget;
import com.android.sdklib.repository.FullRevision;
import com.android.utils.ILogger;
+import com.google.common.base.Joiner;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
@@ -607,6 +608,12 @@ public class AndroidBuilder {
}
}
+ List<String> configurations = options.getConfigurations();
+ if (configurations != null) {
+ command.add("-c");
+ command.add(Joiner.on(',').join(configurations));
+ }
+
if (symbolOutputDir != null &&
(type == VariantConfiguration.Type.LIBRARY || !libraries.isEmpty())) {
command.add("--output-text-symbols");
diff --git a/gradle/src/main/groovy/com/android/build/gradle/internal/dsl/AaptOptionsImpl.groovy b/gradle/src/main/groovy/com/android/build/gradle/internal/dsl/AaptOptionsImpl.groovy
index 449a43f..c16bc6f 100644
--- a/gradle/src/main/groovy/com/android/build/gradle/internal/dsl/AaptOptionsImpl.groovy
+++ b/gradle/src/main/groovy/com/android/build/gradle/internal/dsl/AaptOptionsImpl.groovy
@@ -27,6 +27,9 @@ public class AaptOptionsImpl implements AaptOptions {
@Input
private List<String> noCompressList
+ @Input
+ private List<String> configurationsList
+
public void setIgnoreAssetsPattern(String ignoreAssetsPattern) {
this.ignoreAssetsPattern = ignoreAssetsPattern
}
@@ -58,4 +61,27 @@ public class AaptOptionsImpl implements AaptOptions {
public void noCompress(String... noCompress) {
noCompressList = Arrays.asList(noCompress)
}
+
+ @Override
+ List<String> getConfigurations() {
+ return configurationsList
+ }
+
+ public void setConfigurations(String configuration) {
+ configurationsList = Collections.singletonList(configuration)
+ }
+
+ public void setConfigurations(String... configurations) {
+ configurationsList = Arrays.asList(configurations)
+ }
+
+ // -- DSL Methods. TODO remove per above comment?
+
+ public void configurations(String configuration) {
+ configurationsList = Collections.singletonList(configuration)
+ }
+
+ public void configurations(String... configurations) {
+ configurationsList = Arrays.asList(configurations)
+ }
}
diff --git a/tests/basic/build.gradle b/tests/basic/build.gradle
index d5162af..7b8f0a5 100644
--- a/tests/basic/build.gradle
+++ b/tests/basic/build.gradle
@@ -56,5 +56,6 @@ android {
aaptOptions {
noCompress 'txt'
ignoreAssetsPattern "!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"
+ configurations 'en', 'es'
}
}
\ No newline at end of file
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment