aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/android
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2016-12-22 16:24:03 +0000
committerGravatar Klaus Aehlig <aehlig@google.com>2016-12-22 16:39:41 +0000
commit08a9e301085a99e90fcb9155c3375c027b070fe1 (patch)
treed109c194e9cbf21fb7e971241cdf7af950fe298d /src/main/java/com/google/devtools/build/lib/rules/android
parent75c95ac5e691ec242b67d5e21a7633ccf1c6b446 (diff)
RELNOTES[NEW]: Add transitive proguard_specs when android_sdk.aidl_lib is specified
-- PiperOrigin-RevId: 142768089 MOS_MIGRATED_REVID=142768089
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/android')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidIdlHelper.java10
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java8
2 files changed, 16 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidIdlHelper.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidIdlHelper.java
index d36086e590..e7553e0c99 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidIdlHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidIdlHelper.java
@@ -28,6 +28,7 @@ import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
import com.google.devtools.build.lib.packages.BuildType;
import com.google.devtools.build.lib.rules.java.JavaUtil;
+import com.google.devtools.build.lib.rules.java.ProguardSpecProvider;
import com.google.devtools.build.lib.syntax.Type;
import com.google.devtools.build.lib.vfs.FileSystemUtils;
import com.google.devtools.build.lib.vfs.PathFragment;
@@ -172,6 +173,15 @@ public class AndroidIdlHelper {
.build();
}
+ public static void addSupportLibProguardConfigs(RuleContext ruleContext,
+ NestedSetBuilder<Artifact> proguardConfigsbuilder) {
+ TransitiveInfoCollection aidlLib = AndroidSdkProvider.fromRuleContext(ruleContext).getAidlLib();
+ if (aidlLib != null) {
+ proguardConfigsbuilder.addTransitive(
+ aidlLib.getProvider(ProguardSpecProvider.class).getTransitiveProguardSpecs());
+ }
+ }
+
/**
* Generates an artifact by replacing the extension of the input with the suffix.
*/
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java
index 90ad509ed1..8d37d2d12c 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java
@@ -62,8 +62,12 @@ public abstract class AndroidLibrary implements RuleConfiguredTargetFactory {
NestedSet<LinkerInput> transitiveNativeLibraries =
AndroidCommon.collectTransitiveNativeLibraries(
AndroidCommon.collectTransitiveInfo(ruleContext, Mode.TARGET));
- NestedSet<Artifact> transitiveProguardConfigs =
- new ProguardLibrary(ruleContext).collectProguardSpecs();
+
+ NestedSetBuilder<Artifact> proguardConfigsbuilder = NestedSetBuilder.stableOrder();
+ proguardConfigsbuilder.addTransitive(new ProguardLibrary(ruleContext).collectProguardSpecs());
+ AndroidIdlHelper.addSupportLibProguardConfigs(ruleContext, proguardConfigsbuilder);
+ NestedSet<Artifact> transitiveProguardConfigs = proguardConfigsbuilder.build();
+
JavaCommon javaCommon =
AndroidCommon.createJavaCommonWithAndroidDataBinding(ruleContext, javaSemantics, true);
javaSemantics.checkRule(ruleContext, javaCommon);