diff options
author | 2015-06-05 17:29:57 +0000 | |
---|---|---|
committer | 2015-06-08 12:53:21 +0000 | |
commit | b7db691fd3fedb05bb772de03f5171a7490f8127 (patch) | |
tree | 2d1e3321a3f2baf25cec65a12d93f30778de80ac /src/main/java | |
parent | 84a7c337b457681e59816391feda71ac79577117 (diff) |
Rollback of commit 25f07c5f1ae826d748a4dac61f3adf3deb4edc8f.
*** Reason for rollback ***
Emulator is missing GLIBC_2.7 for certain cases.
*** Original change description ***
Remove the dynamic tool launcher, now that the android tools are static.
--
MOS_MIGRATED_REVID=95302834
Diffstat (limited to 'src/main/java')
3 files changed, 37 insertions, 6 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); 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) diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidTools.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidTools.java index 65505ab14d..5e57c27e04 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidTools.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidTools.java @@ -36,6 +36,7 @@ public class AndroidTools { private final Artifact aidlTool; private final Artifact frameworkAidl; private final FilesToRunProvider adb; + private final FilesToRunProvider toolRunner; private final FilesToRunProvider aaptJavaGenerator; private final FilesToRunProvider apkGenerator; private final FilesToRunProvider resourceProcessor; @@ -68,6 +69,7 @@ public class AndroidTools { getOptionalArtifact(ruleContext, "$android_aidl_framework"), getOptionalToolFromArtifact(ruleContext, "$android_aapt"), getOptionalToolFromArtifact(ruleContext, "$adb"), + getOptionalTool(ruleContext, "$android_tool_runner"), getOptionalTool(ruleContext, "$android_aapt_java_generator"), getOptionalTool(ruleContext, "$android_aapt_apk_generator"), getOptionalTool(ruleContext, ":android_resources_processor"), @@ -141,6 +143,7 @@ public class AndroidTools { Artifact frameworkAidl, FilesToRunProvider aapt, FilesToRunProvider adb, + FilesToRunProvider toolRunner, FilesToRunProvider aaptJavaGenerator, FilesToRunProvider apkGenerator, FilesToRunProvider resourceProcessor, @@ -159,6 +162,7 @@ public class AndroidTools { this.aidlTool = aidlTool; this.frameworkAidl = frameworkAidl; this.adb = adb; + this.toolRunner = toolRunner; this.aaptJavaGenerator = aaptJavaGenerator; this.apkGenerator = apkGenerator; this.resourceProcessor = resourceProcessor; @@ -195,6 +199,10 @@ public class AndroidTools { return androidSdk != null ? androidSdk.getAdb() : adb; } + public FilesToRunProvider getToolRunner() { + return toolRunner; + } + public FilesToRunProvider getAaptJavaGenerator() { return aaptJavaGenerator; } @@ -301,10 +309,14 @@ public class AndroidTools { public SpawnAction.Builder aidlAction() { return androidSdk != null ? new SpawnAction.Builder() - .addInput(androidSdk.getAidl().getExecutable()) .setExecutable(androidSdk.getAidl()) : new SpawnAction.Builder() - .addInput(aidlTool) - .setExecutable(aidlTool); + // Note the below may be an overapproximation of the actual runfiles, due to + // "conditional artifacts" (see Runfiles.PruningManifest). + // TODO(bazel-team): When using getFilesToRun(), the middleman is + // not expanded. Fix by providing code to expand and use getFilesToRun here. + .addInputs(toolRunner.getRunfilesSupport().getRunfilesArtifactsWithoutMiddlemen()) + .setExecutable(toolRunner.getExecutable()) + .addInputArgument(aidlTool); } }
\ No newline at end of file |