diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java index 5ab0842157..dd4e791e2a 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java @@ -17,6 +17,7 @@ import static com.google.devtools.build.lib.analysis.config.BuildConfiguration.S import static com.google.devtools.build.lib.analysis.config.BuildConfiguration.StrictDepsMode.ERROR; import static com.google.devtools.build.lib.analysis.config.BuildConfiguration.StrictDepsMode.STRICT; +import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.devtools.build.lib.actions.Artifact; @@ -30,6 +31,7 @@ import com.google.devtools.build.lib.analysis.RuleConfiguredTargetBuilder; import com.google.devtools.build.lib.analysis.RuleContext; import com.google.devtools.build.lib.analysis.Runfiles; import com.google.devtools.build.lib.analysis.RunfilesProvider; +import com.google.devtools.build.lib.analysis.RunfilesSupport; import com.google.devtools.build.lib.analysis.TransitiveInfoCollection; import com.google.devtools.build.lib.analysis.actions.FileWriteAction; import com.google.devtools.build.lib.analysis.actions.SpawnAction; @@ -598,6 +600,8 @@ public class AndroidCommon { private void generateAndroidIdlActions(RuleContext ruleContext, AndroidTools tools, Collection<Artifact> idls, AndroidIdlProvider transitiveIdlImportData, Map<Artifact, Artifact> translatedIdlSources) { + FilesToRunProvider toolRunner = + ruleContext.getExecutablePrerequisite("$android_tool_runner", Mode.HOST); Set<Artifact> preprocessedIdls = new LinkedHashSet<>(); List<String> preprocessedArgs = new ArrayList<>(); @@ -620,7 +624,7 @@ public class AndroidCommon { preprocessedIdls.add(preprocessed); preprocessedArgs.add("-p" + preprocessed.getExecPathString()); - createAndroidIdlPreprocessAction(ruleContext, tools, idl, preprocessed); + createAndroidIdlPreprocessAction(ruleContext, tools, toolRunner, idl, preprocessed); } // aggregate all preprocessed aidl files @@ -630,14 +634,16 @@ public class AndroidCommon { ruleContext.getConfiguration().getMiddlemanDirectory()); for (Artifact idl : translatedIdlSources.keySet()) { - createAndroidIdlAction(ruleContext, tools, idl, + createAndroidIdlAction(ruleContext, tools, toolRunner, idl, transitiveIdlImportData.getTransitiveIdlImports(), preprocessedIdlsMiddleman, translatedIdlSources.get(idl), preprocessedArgs); } } private void createAndroidIdlPreprocessAction(RuleContext ruleContext, AndroidTools tools, - Artifact idl, Artifact preprocessed) { + FilesToRunProvider toolRunner, Artifact idl, Artifact preprocessed) { + RunfilesSupport toolRunnerRunfiles = toolRunner.getRunfilesSupport(); + Preconditions.checkState(toolRunnerRunfiles != null, toolRunner.getLabel()); ruleContext.registerAction(tools.aidlAction() // Note the below may be an overapproximation of the actual runfiles, due to "conditional // artifacts" (see Runfiles.PruningManifest). @@ -654,8 +660,11 @@ public class AndroidCommon { } private void createAndroidIdlAction(RuleContext ruleContext, AndroidTools tools, + FilesToRunProvider toolRunner, Artifact idl, Iterable<Artifact> idlImports, Artifact preprocessedIdls, Artifact output, List<String> preprocessedArgs) { + RunfilesSupport toolRunnerRunfiles = toolRunner.getRunfilesSupport(); + Preconditions.checkState(toolRunnerRunfiles != null, toolRunner.getLabel()); ruleContext.registerAction(tools.aidlAction() .addInput(idl) .addInputs(idlImports) |