aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main
diff options
context:
space:
mode:
authorGravatar Andrew Pellegrini <apell@google.com>2016-07-01 17:04:54 +0000
committerGravatar Lukacs Berki <lberki@google.com>2016-07-04 07:19:14 +0000
commit99a2b2eb57a5395571f66054b330f87ab95cfb6c (patch)
tree24f9b6d7ae2642458f0e57f6ed07c40fd63c8cfc /src/main
parent207ba4a1248ee113eb0eb009dc55918e4633cda0 (diff)
Add output log for android resource shrinking, following the format produced by the Gradle resource shrinker in resources.txt.
-- MOS_MIGRATED_REVID=126420534
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/ResourceShrinkerActionBuilder.java12
3 files changed, 16 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java
index c1f129d029..082fe72374 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java
@@ -1012,6 +1012,8 @@ public abstract class AndroidBinary implements RuleConfiguredTargetFactory {
AndroidRuleClasses.ANDROID_RESOURCES_SHRUNK_APK))
.setShrunkResourcesOut(ruleContext.getImplicitOutputArtifact(
AndroidRuleClasses.ANDROID_RESOURCES_SHRUNK_ZIP))
+ .setLogOut(ruleContext.getImplicitOutputArtifact(
+ AndroidRuleClasses.ANDROID_RESOURCE_SHRINKER_LOG))
.withResourceFiles(ruleContext.getImplicitOutputArtifact(
AndroidRuleClasses.ANDROID_RESOURCES_ZIP))
.withShrunkJar(shrunkJar)
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 2a8d499f40..30d659b870 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
@@ -98,6 +98,8 @@ public final class AndroidRuleClasses {
fromTemplates("%{name}_files/resource_files.zip");
public static final SafeImplicitOutputsFunction ANDROID_RESOURCES_SHRUNK_ZIP =
fromTemplates("%{name}_files/resource_files_shrunk.zip");
+ public static final SafeImplicitOutputsFunction ANDROID_RESOURCE_SHRINKER_LOG =
+ fromTemplates("%{name}_files/resource_shrinker_log.txt");
public static final SafeImplicitOutputsFunction ANDROID_INCREMENTAL_RESOURCES_APK =
fromTemplates("%{name}_files/incremental.ap_");
public static final SafeImplicitOutputsFunction ANDROID_BINARY_APK =
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 e8a545afe1..8ec9d3c9cf 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
@@ -37,6 +37,7 @@ public class ResourceShrinkerActionBuilder {
private ResourceDependencies dependencyResources;
private Artifact resourceApkOut;
private Artifact shrunkResourcesOut;
+ private Artifact logOut;
private final RuleContext ruleContext;
private final SpawnAction.Builder spawnActionBuilder;
@@ -123,6 +124,14 @@ public class ResourceShrinkerActionBuilder {
return this;
}
+ /**
+ * @param logOut The location to write the shrinker log.
+ */
+ public ResourceShrinkerActionBuilder setLogOut(Artifact logOut) {
+ this.logOut = logOut;
+ return this;
+ }
+
public Artifact build() {
ImmutableList.Builder<Artifact> inputs = ImmutableList.builder();
ImmutableList.Builder<Artifact> outputs = ImmutableList.builder();
@@ -184,6 +193,9 @@ public class ResourceShrinkerActionBuilder {
commandLine.addExecPath("--shrunkResources", shrunkResourcesOut);
outputs.add(shrunkResourcesOut);
+ commandLine.addExecPath("--log", logOut);
+ outputs.add(logOut);
+
ruleContext.registerAction(spawnActionBuilder
.addTool(sdk.getAapt())
.addInputs(inputs.build())