aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AarGeneratorBuilder.java25
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceMergingActionBuilder.java9
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceParsingActionBuilder.java13
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceValidatorActionBuilder.java7
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourcesProcessorBuilder.java9
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java30
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/ManifestMergerActionBuilder.java14
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/RClassGeneratorActionBuilder.java14
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/ResourceShrinkerActionBuilder.java32
9 files changed, 87 insertions, 66 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AarGeneratorBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/android/AarGeneratorBuilder.java
index 4a42915da3..41c5ab751d 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AarGeneratorBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AarGeneratorBuilder.java
@@ -83,6 +83,12 @@ public class AarGeneratorBuilder {
List<Artifact> outs = new ArrayList<>();
List<Artifact> ins = new ArrayList<>();
List<String> args = new ArrayList<>();
+
+ // Set the busybox tool
+ args.add("--tool");
+ args.add("GENERATE_AAR");
+ // Deliminate between the tool and the tool arguments.
+ args.add("--");
args.add("--mainData");
addPrimaryResourceContainer(ins, args, primary);
@@ -109,15 +115,16 @@ public class AarGeneratorBuilder {
args.add(aarOut.getExecPathString());
outs.add(aarOut);
- ruleContext.registerAction(this.builder
- .addInputs(ImmutableList.<Artifact>copyOf(ins))
- .addOutputs(ImmutableList.<Artifact>copyOf(outs))
- .setCommandLine(CommandLine.of(args, false))
- .setExecutable(
- ruleContext.getExecutablePrerequisite("$android_aar_generator", Mode.HOST))
- .setProgressMessage("Building AAR package for " + ruleContext.getLabel())
- .setMnemonic("AARGenerator")
- .build(context));
+ ruleContext.registerAction(
+ this.builder
+ .addInputs(ImmutableList.<Artifact>copyOf(ins))
+ .addOutputs(ImmutableList.<Artifact>copyOf(outs))
+ .setCommandLine(CommandLine.of(args, false))
+ .setExecutable(
+ ruleContext.getExecutablePrerequisite("$android_resources_busybox", Mode.HOST))
+ .setProgressMessage("Building AAR package for " + ruleContext.getLabel())
+ .setMnemonic("AARGenerator")
+ .build(context));
}
private void addPrimaryResourceContainer(List<Artifact> inputs, List<String> args,
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceMergingActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceMergingActionBuilder.java
index 56ab7bfcf2..1e3ae9ccce 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceMergingActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceMergingActionBuilder.java
@@ -35,7 +35,7 @@ import java.util.List;
* $android_resource_validator action. For android_binary, see {@link
* AndroidResourcesProcessorBuilder}.
*/
-class AndroidResourceMergingActionBuilder {
+public class AndroidResourceMergingActionBuilder {
private static final ResourceContainerConverter.ToArtifacts RESOURCE_CONTAINER_TO_ARTIFACTS =
ResourceContainerConverter.builder()
@@ -107,12 +107,15 @@ class AndroidResourceMergingActionBuilder {
public ResourceContainer build(ActionConstructionContext context) {
CustomCommandLine.Builder builder = new CustomCommandLine.Builder();
+
+ // Set the busybox tool.
+ builder.add("--tool").add("MERGE").add("--");
// Use a FluentIterable to avoid flattening the NestedSets
NestedSetBuilder<Artifact> inputs = NestedSetBuilder.naiveLinkOrder();
inputs.addAll(
ruleContext
- .getExecutablePrerequisite("$android_resource_merger", Mode.HOST)
+ .getExecutablePrerequisite("$android_resources_busybox", Mode.HOST)
.getRunfilesSupport()
.getRunfilesArtifactsWithoutMiddlemen());
@@ -162,7 +165,7 @@ class AndroidResourceMergingActionBuilder {
.addOutputs(ImmutableList.copyOf(outs))
.setCommandLine(builder.build())
.setExecutable(
- ruleContext.getExecutablePrerequisite("$android_resource_merger", Mode.HOST))
+ ruleContext.getExecutablePrerequisite("$android_resources_busybox", Mode.HOST))
.setProgressMessage("Merging Android resources for " + ruleContext.getLabel())
.setMnemonic("AndroidResourceMerger")
.build(context));
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceParsingActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceParsingActionBuilder.java
index 0d86acf744..4a926fd8e4 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceParsingActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceParsingActionBuilder.java
@@ -112,11 +112,16 @@ public class AndroidResourceParsingActionBuilder {
public ResourceContainer build(ActionConstructionContext context) {
CustomCommandLine.Builder builder = new CustomCommandLine.Builder();
+
+ // Set the busybox tool.
+ builder.add("--tool").add("PARSE").add("--");
NestedSetBuilder<Artifact> inputs = NestedSetBuilder.naiveLinkOrder();
- inputs.addAll(ruleContext.getExecutablePrerequisite("$android_resource_parser", Mode.HOST)
- .getRunfilesSupport()
- .getRunfilesArtifactsWithoutMiddlemen());
+ inputs.addAll(
+ ruleContext
+ .getExecutablePrerequisite("$android_resources_busybox", Mode.HOST)
+ .getRunfilesSupport()
+ .getRunfilesArtifactsWithoutMiddlemen());
Preconditions.checkNotNull(primary);
builder.add("--primaryData").add(RESOURCE_CONTAINER_TO_ARG.apply(primary));
@@ -136,7 +141,7 @@ public class AndroidResourceParsingActionBuilder {
.addOutputs(ImmutableList.copyOf(outs))
.setCommandLine(builder.build())
.setExecutable(
- ruleContext.getExecutablePrerequisite("$android_resource_parser", Mode.HOST))
+ ruleContext.getExecutablePrerequisite("$android_resources_busybox", Mode.HOST))
.setProgressMessage("Parsing Android resources for " + ruleContext.getLabel())
.setMnemonic("AndroidResourceParser")
.build(context));
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceValidatorActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceValidatorActionBuilder.java
index ce8df5f9fc..66e8b8b3cf 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceValidatorActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceValidatorActionBuilder.java
@@ -91,6 +91,9 @@ class AndroidResourceValidatorActionBuilder {
public ResourceContainer build(ActionConstructionContext context) {
CustomCommandLine.Builder builder = new CustomCommandLine.Builder();
+ // Set the busybox tool.
+ builder.add("--tool").add("VALIDATE").add("--");
+
if (!Strings.isNullOrEmpty(sdk.getBuildToolsVersion())) {
builder.add("--buildToolsVersion").add(sdk.getBuildToolsVersion());
}
@@ -101,7 +104,7 @@ class AndroidResourceValidatorActionBuilder {
NestedSetBuilder<Artifact> inputs = NestedSetBuilder.naiveLinkOrder();
inputs.addAll(
ruleContext
- .getExecutablePrerequisite("$android_resource_validator", Mode.HOST)
+ .getExecutablePrerequisite("$android_resources_busybox", Mode.HOST)
.getRunfilesSupport()
.getRunfilesArtifactsWithoutMiddlemen());
@@ -146,7 +149,7 @@ class AndroidResourceValidatorActionBuilder {
.addOutputs(ImmutableList.copyOf(outs))
.setCommandLine(builder.build())
.setExecutable(
- ruleContext.getExecutablePrerequisite("$android_resource_validator", Mode.HOST))
+ ruleContext.getExecutablePrerequisite("$android_resources_busybox", Mode.HOST))
.setProgressMessage("Validating Android resources for " + ruleContext.getLabel())
.setMnemonic("AndroidResourceValidator")
.build(context));
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourcesProcessorBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourcesProcessorBuilder.java
index 81cec62e5d..c10228c707 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourcesProcessorBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourcesProcessorBuilder.java
@@ -201,6 +201,9 @@ public class AndroidResourcesProcessorBuilder {
public ResourceContainer build(ActionConstructionContext context) {
List<Artifact> outs = new ArrayList<>();
CustomCommandLine.Builder builder = new CustomCommandLine.Builder();
+
+ // Set the busybox tool.
+ builder.add("--tool").add("PACKAGE").add("--");
if (!Strings.isNullOrEmpty(sdk.getBuildToolsVersion())) {
builder.add("--buildToolsVersion").add(sdk.getBuildToolsVersion());
@@ -209,7 +212,9 @@ public class AndroidResourcesProcessorBuilder {
builder.addExecPath("--aapt", sdk.getAapt().getExecutable());
// Use a FluentIterable to avoid flattening the NestedSets
NestedSetBuilder<Artifact> inputs = NestedSetBuilder.naiveLinkOrder();
- inputs.addAll(ruleContext.getExecutablePrerequisite("$android_resources_processor", Mode.HOST)
+ inputs.addAll(
+ ruleContext
+ .getExecutablePrerequisite("$android_resources_busybox", Mode.HOST)
.getRunfilesSupport()
.getRunfilesArtifactsWithoutMiddlemen());
@@ -317,7 +322,7 @@ public class AndroidResourcesProcessorBuilder {
.addOutputs(ImmutableList.<Artifact>copyOf(outs))
.setCommandLine(builder.build())
.setExecutable(
- ruleContext.getExecutablePrerequisite("$android_resources_processor", Mode.HOST))
+ ruleContext.getExecutablePrerequisite("$android_resources_busybox", Mode.HOST))
.setProgressMessage("Processing Android resources for " + ruleContext.getLabel())
.setMnemonic("AndroidAapt")
.build(context));
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java
index 3ec2bb41a6..ba552078e5 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java
@@ -163,14 +163,7 @@ public final class AndroidRuleClasses {
"//tools/android:incremental_stub_application";
public static final String DEFAULT_INCREMENTAL_SPLIT_STUB_APPLICATION =
"//tools/android:incremental_split_stub_application";
- public static final String DEFAULT_AAR_GENERATOR = "//tools/android:aar_generator";
- public static final String DEFAULT_MANIFEST_MERGER = "//tools/android:manifest_merger";
- public static final String DEFAULT_RCLASS_GENERATOR = "//tools/android:rclass_generator";
- public static final String DEFAULT_RESOURCES_PROCESSOR = "//tools/android:resources_processor";
- public static final String DEFAULT_RESOURCE_MERGER = "//tools/android:resource_merger";
- public static final String DEFAULT_RESOURCE_PARSER = "//tools/android:resource_parser";
- public static final String DEFAULT_RESOURCE_SHRINKER = "//tools/android:resource_shrinker";
- public static final String DEFAULT_RESOURCE_VALIDATOR = "//tools/android:resource_validator";
+ public static final String DEFAULT_RESOURCES_BUSYBOX = "//tools/android:busybox";
public static final String DEFAULT_SDK = "//tools/android:sdk";
/**
@@ -423,22 +416,11 @@ public final class AndroidRuleClasses {
@Override
public RuleClass build(RuleClass.Builder builder, RuleDefinitionEnvironment env) {
return builder
- .add(attr("$android_aar_generator", LABEL).cfg(HOST).exec().value(
- env.getToolsLabel(DEFAULT_AAR_GENERATOR)))
- .add(attr("$android_manifest_merger", LABEL).cfg(HOST).exec().value(
- env.getToolsLabel(DEFAULT_MANIFEST_MERGER)))
- .add(attr("$android_rclass_generator", LABEL).cfg(HOST).exec().value(
- env.getToolsLabel(DEFAULT_RCLASS_GENERATOR)))
- .add(attr("$android_resources_processor", LABEL).cfg(HOST).exec().value(
- env.getToolsLabel(DEFAULT_RESOURCES_PROCESSOR)))
- .add(attr("$android_resource_merger", LABEL).cfg(HOST).exec().value(
- env.getToolsLabel(DEFAULT_RESOURCE_MERGER)))
- .add(attr("$android_resource_parser", LABEL).cfg(HOST).exec().value(
- env.getToolsLabel(DEFAULT_RESOURCE_PARSER)))
- .add(attr("$android_resource_validator", LABEL).cfg(HOST).exec().value(
- env.getToolsLabel(DEFAULT_RESOURCE_VALIDATOR)))
- .add(attr("$android_resource_shrinker", LABEL).cfg(HOST).exec().value(
- env.getToolsLabel(DEFAULT_RESOURCE_SHRINKER)))
+ .add(
+ attr("$android_resources_busybox", LABEL)
+ .cfg(HOST)
+ .exec()
+ .value(env.getToolsLabel(DEFAULT_RESOURCES_BUSYBOX)))
.build();
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/ManifestMergerActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/android/ManifestMergerActionBuilder.java
index af679f0509..c84e3fd1a3 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/ManifestMergerActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/ManifestMergerActionBuilder.java
@@ -25,7 +25,6 @@ import com.google.devtools.build.lib.analysis.actions.CustomCommandLine;
import com.google.devtools.build.lib.analysis.actions.SpawnAction;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
-
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
@@ -89,10 +88,15 @@ public class ManifestMergerActionBuilder {
NestedSetBuilder<Artifact> inputs = NestedSetBuilder.naiveLinkOrder();
ImmutableList.Builder<Artifact> outputs = ImmutableList.builder();
CustomCommandLine.Builder builder = new CustomCommandLine.Builder();
+
+ // Set the busybox tool.
+ builder.add("--tool").add("MERGE_MANIFEST").add("--");
- inputs.addAll(ruleContext.getExecutablePrerequisite("$android_manifest_merger", Mode.HOST)
- .getRunfilesSupport()
- .getRunfilesArtifactsWithoutMiddlemen());
+ inputs.addAll(
+ ruleContext
+ .getExecutablePrerequisite("$android_resources_busybox", Mode.HOST)
+ .getRunfilesSupport()
+ .getRunfilesArtifactsWithoutMiddlemen());
builder.addExecPath("--manifest", manifest);
inputs.add(manifest);
@@ -135,7 +139,7 @@ public class ManifestMergerActionBuilder {
.addOutputs(outputs.build())
.setCommandLine(builder.build())
.setExecutable(
- ruleContext.getExecutablePrerequisite("$android_manifest_merger", Mode.HOST))
+ ruleContext.getExecutablePrerequisite("$android_resources_busybox", Mode.HOST))
.setProgressMessage("Merging manifest for " + ruleContext.getLabel())
.setMnemonic("ManifestMerger")
.build(context));
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/RClassGeneratorActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/android/RClassGeneratorActionBuilder.java
index f9597c4a57..aec168286d 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/RClassGeneratorActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/RClassGeneratorActionBuilder.java
@@ -98,10 +98,16 @@ public class RClassGeneratorActionBuilder {
public void build() {
CustomCommandLine.Builder builder = new CustomCommandLine.Builder();
+
+ // Set the busybox tool.
+ builder.add("--tool").add("GENERATE_BINARY_R").add("--");
+
NestedSetBuilder<Artifact> inputs = NestedSetBuilder.naiveLinkOrder();
- inputs.addAll(ruleContext.getExecutablePrerequisite("$android_rclass_generator", Mode.HOST)
- .getRunfilesSupport()
- .getRunfilesArtifactsWithoutMiddlemen());
+ inputs.addAll(
+ ruleContext
+ .getExecutablePrerequisite("$android_resources_busybox", Mode.HOST)
+ .getRunfilesSupport()
+ .getRunfilesArtifactsWithoutMiddlemen());
List<Artifact> outs = new ArrayList<>();
if (primary.getRTxt() != null) {
@@ -138,7 +144,7 @@ public class RClassGeneratorActionBuilder {
.useParameterFile(ParameterFileType.SHELL_QUOTED)
.setCommandLine(builder.build())
.setExecutable(
- ruleContext.getExecutablePrerequisite("$android_rclass_generator", Mode.HOST))
+ ruleContext.getExecutablePrerequisite("$android_resources_busybox", Mode.HOST))
.setProgressMessage("Generating R Classes: " + ruleContext.getLabel())
.setMnemonic("RClassGenerator")
.build(ruleContext));
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/ResourceShrinkerActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/android/ResourceShrinkerActionBuilder.java
index beb7370d5a..4d234291c6 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/ResourceShrinkerActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/ResourceShrinkerActionBuilder.java
@@ -144,10 +144,15 @@ public class ResourceShrinkerActionBuilder {
ImmutableList.Builder<Artifact> outputs = ImmutableList.builder();
CustomCommandLine.Builder commandLine = new CustomCommandLine.Builder();
+
+ // Set the busybox tool.
+ commandLine.add("--tool").add("SHRINK").add("--");
- inputs.addAll(ruleContext.getExecutablePrerequisite("$android_resource_shrinker", Mode.HOST)
- .getRunfilesSupport()
- .getRunfilesArtifactsWithoutMiddlemen());
+ inputs.addAll(
+ ruleContext
+ .getExecutablePrerequisite("$android_resources_busybox", Mode.HOST)
+ .getRunfilesSupport()
+ .getRunfilesArtifactsWithoutMiddlemen());
commandLine.addExecPath("--aapt", sdk.getAapt().getExecutable());
@@ -208,16 +213,17 @@ public class ResourceShrinkerActionBuilder {
commandLine.addExecPath("--log", logOut);
outputs.add(logOut);
- ruleContext.registerAction(spawnActionBuilder
- .addTool(sdk.getAapt())
- .addInputs(inputs.build())
- .addOutputs(outputs.build())
- .setCommandLine(commandLine.build())
- .setExecutable(ruleContext.getExecutablePrerequisite(
- "$android_resource_shrinker", Mode.HOST))
- .setProgressMessage("Shrinking resources for " + ruleContext.getLabel())
- .setMnemonic("ResourceShrinker")
- .build(ruleContext));
+ ruleContext.registerAction(
+ spawnActionBuilder
+ .addTool(sdk.getAapt())
+ .addInputs(inputs.build())
+ .addOutputs(outputs.build())
+ .setCommandLine(commandLine.build())
+ .setExecutable(
+ ruleContext.getExecutablePrerequisite("$android_resources_busybox", Mode.HOST))
+ .setProgressMessage("Shrinking resources for " + ruleContext.getLabel())
+ .setMnemonic("ResourceShrinker")
+ .build(ruleContext));
return resourceApkOut;
}