aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/android/RobolectricResourceSymbolsActionBuilder.java
diff options
context:
space:
mode:
authorGravatar tomlu <tomlu@google.com>2017-09-14 21:44:08 +0200
committerGravatar Philipp Wollermann <philwo@google.com>2017-09-15 11:28:33 +0200
commitf38b433bf5d311a5bd914b8ef7ea497fd3b09941 (patch)
treed6b1049804c9f95271f34fc6ac0c19abe6b9f2d9 /src/main/java/com/google/devtools/build/lib/rules/android/RobolectricResourceSymbolsActionBuilder.java
parentd9b141def7aa7737dc09d5c490222c101630df77 (diff)
Do not flatten resource artifacts in Android rules.
This involves rather tediously rolling up each artifact type in its own individual nested set. PiperOrigin-RevId: 168729120
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/android/RobolectricResourceSymbolsActionBuilder.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/RobolectricResourceSymbolsActionBuilder.java22
1 files changed, 7 insertions, 15 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/RobolectricResourceSymbolsActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/android/RobolectricResourceSymbolsActionBuilder.java
index 64b99d3d66..e752d82108 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/RobolectricResourceSymbolsActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/RobolectricResourceSymbolsActionBuilder.java
@@ -13,7 +13,6 @@
// limitations under the License.
package com.google.devtools.build.lib.rules.android;
-import com.google.common.collect.FluentIterable;
import com.google.common.collect.Iterables;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.actions.ParameterFile.ParameterFileType;
@@ -26,8 +25,6 @@ import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
import com.google.devtools.build.lib.rules.android.ResourceContainerConverter.Builder.SeparatorType;
import com.google.devtools.build.lib.util.OS;
-import java.util.ArrayList;
-import java.util.List;
/**
* Builder for generating R classes for robolectric action.
@@ -37,13 +34,6 @@ import java.util.List;
*/
public class RobolectricResourceSymbolsActionBuilder {
- private static final ResourceContainerConverter.ToArtifacts RESOURCE_CONTAINER_TO_ARTIFACTS =
- ResourceContainerConverter.builder()
- .includeResourceRoots()
- .includeManifest()
- .includeRTxt()
- .includeSymbolsBin()
- .toArtifactConverter();
private static final ResourceContainerConverter.ToArg RESOURCE_CONTAINER_TO_ARG =
ResourceContainerConverter.builder()
.includeResourceRoots()
@@ -80,7 +70,7 @@ public class RobolectricResourceSymbolsActionBuilder {
// Set the busybox tool.
builder.add("--tool").add("GENERATE_ROBOLECTRIC_R").add("--");
- List<Artifact> inputs = new ArrayList<>();
+ NestedSetBuilder<Artifact> inputs = NestedSetBuilder.stableOrder();
builder.addExecPath("--androidJar", sdk.getAndroidJar());
inputs.add(sdk.getAndroidJar());
@@ -93,9 +83,11 @@ public class RobolectricResourceSymbolsActionBuilder {
.mapped(RESOURCE_CONTAINER_TO_ARG));
}
- // This flattens the nested set.
- Iterables.addAll(inputs, FluentIterable.from(dependencies.getResources())
- .transformAndConcat(RESOURCE_CONTAINER_TO_ARTIFACTS));
+ inputs
+ .addTransitive(dependencies.getTransitiveResourceRoots())
+ .addTransitive(dependencies.getTransitiveManifests())
+ .addTransitive(dependencies.getTransitiveRTxt())
+ .addTransitive(dependencies.getTransitiveSymbolsBin());
builder.addExecPath("--classJarOutput", classJarOut);
SpawnAction.Builder spawnActionBuilder = new SpawnAction.Builder();
@@ -117,7 +109,7 @@ public class RobolectricResourceSymbolsActionBuilder {
ruleContext.registerAction(
spawnActionBuilder
.useDefaultShellEnvironment()
- .addInputs(inputs)
+ .addTransitiveInputs(inputs.build())
.addOutput(classJarOut)
.setCommandLine(builder.build())
.setExecutable(