aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/android/AndroidAaptActionHelper.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/android/AndroidAaptActionHelper.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidAaptActionHelper.java10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidAaptActionHelper.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidAaptActionHelper.java
index 587813b5fd..7ba64f7354 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidAaptActionHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidAaptActionHelper.java
@@ -15,11 +15,13 @@ package com.google.devtools.build.lib.rules.android;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Function;
+import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.actions.ParameterFile.ParameterFileType;
import com.google.devtools.build.lib.analysis.RuleContext;
+import com.google.devtools.build.lib.analysis.RunfilesSupport;
import com.google.devtools.build.lib.analysis.actions.CommandLine;
import com.google.devtools.build.lib.analysis.actions.SpawnAction;
import com.google.devtools.build.lib.analysis.actions.SpawnAction.Builder;
@@ -67,6 +69,13 @@ public final class AndroidAaptActionHelper {
*/
private Iterable<Artifact> getInputs() {
if (inputs.isEmpty()) {
+ // TODO(bazel-team): When using getFilesToRun(), the middleman is
+ // not expanded. Fix by providing code to expand and use getFilesToRun here.
+ RunfilesSupport aaptRunnerRunfiles = tools.getToolRunner().getRunfilesSupport();
+ Preconditions.checkState(aaptRunnerRunfiles != null, tools.getToolRunner().getLabel());
+ // Note the below may be an overapproximation of the actual runfiles, due to "conditional
+ // artifacts" (see Runfiles.PruningManifest).
+ Iterables.addAll(inputs, aaptRunnerRunfiles.getRunfilesArtifactsWithoutMiddlemen());
inputs.add(tools.getAndroidJar());
inputs.add(manifest);
Iterables.addAll(inputs, Iterables.concat(Iterables.transform(resourceContainers,
@@ -164,6 +173,7 @@ public final class AndroidAaptActionHelper {
List<String> args = new ArrayList<>();
args.addAll(getArgs(output, actionKind, ResourceType.RESOURCES));
args.addAll(getArgs(output, actionKind, ResourceType.ASSETS));
+ args.add(tools.getToolRunner().getExecutable().getExecPathString());
args.add(tools.getAapt().getExecutable().getExecPathString());
args.add("package");
Collections.addAll(args, outputArgs);