aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceParsingActionBuilder.java19
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/ApplicationManifest.java1
3 files changed, 16 insertions, 6 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceParsingActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceParsingActionBuilder.java
index 9b6edbaff6..024fb104b6 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceParsingActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceParsingActionBuilder.java
@@ -31,10 +31,8 @@ import com.google.devtools.build.lib.vfs.PathFragment;
import java.util.ArrayList;
import java.util.List;
-/**
- * Builder for creating $android_resource_parser action.
- */
-class AndroidResourceParsingActionBuilder {
+/** Builder for creating $android_resource_parser action. */
+public class AndroidResourceParsingActionBuilder {
private static final ResourceContainerToArtifacts RESOURCE_CONTAINER_TO_ARTIFACTS =
new ResourceContainerToArtifacts();
@@ -46,6 +44,8 @@ class AndroidResourceParsingActionBuilder {
private LocalResourceContainer primary;
private Artifact output;
+ private ResourceContainer resourceContainer;
+
/**
* @param ruleContext The RuleContext that was used to create the SpawnAction.Builder.
*/
@@ -69,6 +69,12 @@ class AndroidResourceParsingActionBuilder {
return this;
}
+ /** Set the primary resources. */
+ public AndroidResourceParsingActionBuilder withPrimary(ResourceContainer resourceContainer) {
+ this.resourceContainer = resourceContainer;
+ return this;
+ }
+
private static class ResourceContainerToArg implements Function<LocalResourceContainer, String> {
public ResourceContainerToArg() {
@@ -103,7 +109,7 @@ class AndroidResourceParsingActionBuilder {
return Joiner.on("#").join(Iterables.transform(roots, Functions.toStringFunction()));
}
- public Artifact build(ActionConstructionContext context) {
+ public ResourceContainer build(ActionConstructionContext context) {
CustomCommandLine.Builder builder = new CustomCommandLine.Builder();
NestedSetBuilder<Artifact> inputs = NestedSetBuilder.naiveLinkOrder();
@@ -132,6 +138,7 @@ class AndroidResourceParsingActionBuilder {
.setProgressMessage("Parsing Android resources for " + ruleContext.getLabel())
.setMnemonic("AndroidResourceParser")
.build(context));
- return output;
+
+ return resourceContainer.toBuilder().setSymbols(output).build();
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java
index 786fde860d..9148e849f9 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java
@@ -114,6 +114,8 @@ public final class AndroidRuleClasses {
fromTemplates("%{name}_filtered.jar");
public static final SafeImplicitOutputsFunction ANDROID_R_TXT =
fromTemplates("%{name}_symbols/R.txt");
+ public static final SafeImplicitOutputsFunction ANDROID_LOCAL_SYMBOLS =
+ fromTemplates("%{name}_symbols/local.bin");
public static final SafeImplicitOutputsFunction ANDROID_SYMBOLS =
fromTemplates("%{name}_symbols/symbols.bin");
public static final ImplicitOutputsFunction ANDROID_PROCESSED_MANIFEST =
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 7c6ba63296..05c896a96f 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
@@ -453,6 +453,7 @@ public final class ApplicationManifest {
if (resourceContainer.getSymbols() != null) {
new AndroidResourceParsingActionBuilder(ruleContext)
+ .withPrimary(resourceContainer)
.setParse(data)
.setOutput(resourceContainer.getSymbols())
.build(ruleContext);