diff options
author | corysmith <corysmith@google.com> | 2017-11-22 14:18:50 -0800 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2017-11-22 14:20:29 -0800 |
commit | aaad7e42e325a1cc84a43b797030b5964cb93ef5 (patch) | |
tree | 70de4c1c825577a5f1c49cc49fa76c2a3f8dd36a /src/main/java/com/google/devtools/build/lib/rules/android/RobolectricResourceSymbolsActionBuilder.java | |
parent | 6c91871f49e966128f18e2986449b4c19939c14e (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.java | 32 |
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); |