aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/android/RobolectricResourceSymbolsActionBuilder.java
diff options
context:
space:
mode:
authorGravatar corysmith <corysmith@google.com>2017-11-22 14:18:50 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2017-11-22 14:20:29 -0800
commitaaad7e42e325a1cc84a43b797030b5964cb93ef5 (patch)
tree70de4c1c825577a5f1c49cc49fa76c2a3f8dd36a /src/main/java/com/google/devtools/build/lib/rules/android/RobolectricResourceSymbolsActionBuilder.java
parent6c91871f49e966128f18e2986449b4c19939c14e (diff)
Enable aapt2 for robolectric when available.
RELNOTES: None PiperOrigin-RevId: 176700595
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.java32
1 files changed, 29 insertions, 3 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 4a32cabbeb..ea84eeede7 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
@@ -24,7 +24,9 @@ import com.google.devtools.build.lib.analysis.actions.SpawnAction;
import com.google.devtools.build.lib.analysis.configuredtargets.RuleConfiguredTarget.Mode;
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.AndroidConfiguration.AndroidAaptVersion;
import com.google.devtools.build.lib.rules.android.ResourceContainerConverter.Builder.SeparatorType;
+import com.google.devtools.build.lib.rules.android.ResourceContainerConverter.ToArg;
import com.google.devtools.build.lib.util.OS;
/**
@@ -44,9 +46,19 @@ public class RobolectricResourceSymbolsActionBuilder {
.withSeparator(SeparatorType.COLON_COMMA)
.toArgConverter();
+ private static final ResourceContainerConverter.ToArg RESOURCE_CONTAINER_TO_AAPT2_ARG =
+ ResourceContainerConverter.builder()
+ .includeResourceRoots()
+ .includeManifest()
+ .includeAapt2RTxt()
+ .includeSymbolsBin()
+ .withSeparator(SeparatorType.COLON_COMMA)
+ .toArgConverter();
+
private Artifact classJarOut;
private final ResourceDependencies dependencies;
private AndroidSdkProvider sdk;
+ private AndroidAaptVersion androidAaptVersion;
private RobolectricResourceSymbolsActionBuilder(ResourceDependencies dependencies) {
this.dependencies = dependencies;
@@ -66,6 +78,12 @@ public class RobolectricResourceSymbolsActionBuilder {
return this;
}
+ public RobolectricResourceSymbolsActionBuilder targetAaptVersion(
+ AndroidAaptVersion androidAaptVersion) {
+ this.androidAaptVersion = androidAaptVersion;
+ return this;
+ }
+
public NestedSet<Artifact> buildAsClassPathEntry(RuleContext ruleContext) {
CustomCommandLine.Builder builder = new CustomCommandLine.Builder();
// Set the busybox tool.
@@ -76,19 +94,27 @@ public class RobolectricResourceSymbolsActionBuilder {
builder.addExecPath("--androidJar", sdk.getAndroidJar());
inputs.add(sdk.getAndroidJar());
+ ToArg resourceContainerToArg;
+
+ if (androidAaptVersion == AndroidAaptVersion.AAPT2) {
+ inputs.addTransitive(dependencies.getTransitiveAapt2RTxt());
+ resourceContainerToArg = RESOURCE_CONTAINER_TO_AAPT2_ARG;
+ } else {
+ inputs.addTransitive(dependencies.getTransitiveRTxt());
+ resourceContainerToArg = RESOURCE_CONTAINER_TO_ARG;
+ }
if (!Iterables.isEmpty(dependencies.getResourceContainers())) {
builder.addAll(
"--data",
- VectorArg.join(RESOURCE_CONTAINER_TO_ARG.listSeparator())
+ VectorArg.join(resourceContainerToArg.listSeparator())
.each(dependencies.getResourceContainers())
- .mapped(RESOURCE_CONTAINER_TO_ARG));
+ .mapped(resourceContainerToArg));
}
inputs
.addTransitive(dependencies.getTransitiveResources())
.addTransitive(dependencies.getTransitiveAssets())
.addTransitive(dependencies.getTransitiveManifests())
- .addTransitive(dependencies.getTransitiveRTxt())
.addTransitive(dependencies.getTransitiveSymbolsBin());
builder.addExecPath("--classJarOutput", classJarOut);