diff options
Diffstat (limited to 'src/main')
2 files changed, 18 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceMergingActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceMergingActionBuilder.java index 1e3ae9ccce..3d7886d368 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceMergingActionBuilder.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceMergingActionBuilder.java @@ -61,6 +61,7 @@ public class AndroidResourceMergingActionBuilder { private Artifact mergedResourcesOut; private Artifact classJarOut; private Artifact manifestOut; + private Artifact dataBindingInfoZip; // Flags private String customJavaPackage; @@ -100,6 +101,16 @@ public class AndroidResourceMergingActionBuilder { return this; } + /** + * The output zip for resource-processed data binding expressions (i.e. a zip of .xml files). + * If null, data binding processing is skipped (and data binding expressions aren't allowed in + * layout resources). + */ + public AndroidResourceMergingActionBuilder setDataBindingInfoZip(Artifact zip) { + this.dataBindingInfoZip = zip; + return this; + } + public AndroidResourceMergingActionBuilder setJavaPackage(String customJavaPackage) { this.customJavaPackage = customJavaPackage; return this; @@ -156,6 +167,11 @@ public class AndroidResourceMergingActionBuilder { builder.add("--packageForR").add(customJavaPackage); } + if (dataBindingInfoZip != null) { + builder.addExecPath("--dataBindingInfoOut", dataBindingInfoZip); + outs.add(dataBindingInfoZip); + } + SpawnAction.Builder spawnActionBuilder = new SpawnAction.Builder(); // Create the spawn action. ruleContext.registerAction( diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/ApplicationManifest.java b/src/main/java/com/google/devtools/build/lib/rules/android/ApplicationManifest.java index 05c896a96f..019a85d8d7 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/ApplicationManifest.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/ApplicationManifest.java @@ -466,7 +466,8 @@ public final class ApplicationManifest { .withDependencies(resourceDeps) .setMergedResourcesOut(mergedResources) .setManifestOut(manifestOut) - .setClassJarOut(rJavaClassJar); + .setClassJarOut(rJavaClassJar) + .setDataBindingInfoZip(dataBindingInfoZip); ResourceContainer merged = resourcesMergerBuilder.build(ruleContext); AndroidResourceValidatorActionBuilder validatorBuilder = |