aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2017-02-28 23:56:07 +0000
committerGravatar Yue Gan <yueg@google.com>2017-03-01 12:34:48 +0000
commite450c00bf487c711f9b0615e9eb89980c5732b4a (patch)
tree9b0c28318d37b3fea671115534e3511fd3031d6b /src/main/java/com
parent8c00f398d7be863c4f502bde3f5d282b1e18f504 (diff)
Inject aidl_lib only to android_library targets that have idl_srcs
-- PiperOrigin-RevId: 148827329 MOS_MIGRATED_REVID=148827329
Diffstat (limited to 'src/main/java/com')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidIdlHelper.java26
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java2
3 files changed, 20 insertions, 12 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 d12728a79d..9c68fd261c 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
@@ -961,9 +961,7 @@ public class AndroidCommon {
if (useDataBinding) {
compileDeps = DataBinding.addSupportLibs(ruleContext, compileDeps);
}
- if (AndroidIdlHelper.hasIdlSrcs(ruleContext)) {
- compileDeps = AndroidIdlHelper.addSupportLibs(ruleContext, compileDeps);
- }
+ compileDeps = AndroidIdlHelper.maybeAddSupportLibs(ruleContext, compileDeps);
runtimeDeps = JavaCommon.defaultDeps(ruleContext, semantics, ClasspathType.RUNTIME_ONLY);
bothDeps = JavaCommon.defaultDeps(ruleContext, semantics, ClasspathType.BOTH);
} else {
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 e7553e0c99..1f8b0b64b3 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
@@ -155,14 +155,17 @@ public class AndroidIdlHelper {
}
public static boolean hasIdlSrcs(RuleContext ruleContext) {
- return ruleContext.getRule().isAttrDefined("idl_srcs", BuildType.LABEL_LIST);
+ return !getIdlSrcs(ruleContext).isEmpty();
}
/**
* Returns a new list with the idl libs added to the given list if necessary, or the same list.
*/
- public static ImmutableList<TransitiveInfoCollection> addSupportLibs(RuleContext ruleContext,
+ public static ImmutableList<TransitiveInfoCollection> maybeAddSupportLibs(RuleContext ruleContext,
ImmutableList<TransitiveInfoCollection> deps) {
+ if (!hasIdlSrcs(ruleContext)) {
+ return deps;
+ }
TransitiveInfoCollection aidlLib = AndroidSdkProvider.fromRuleContext(ruleContext).getAidlLib();
if (aidlLib == null) {
return deps;
@@ -173,13 +176,20 @@ public class AndroidIdlHelper {
.build();
}
- public static void addSupportLibProguardConfigs(RuleContext ruleContext,
- NestedSetBuilder<Artifact> proguardConfigsbuilder) {
+ public static void maybeAddSupportLibProguardConfigs(RuleContext ruleContext,
+ NestedSetBuilder<Artifact> proguardConfigsBuilder) {
+ if (!hasIdlSrcs(ruleContext)) {
+ return;
+ }
TransitiveInfoCollection aidlLib = AndroidSdkProvider.fromRuleContext(ruleContext).getAidlLib();
- if (aidlLib != null) {
- proguardConfigsbuilder.addTransitive(
- aidlLib.getProvider(ProguardSpecProvider.class).getTransitiveProguardSpecs());
+ if (aidlLib == null) {
+ return;
}
+ ProguardSpecProvider provider = aidlLib.getProvider(ProguardSpecProvider.class);
+ if (provider == null) {
+ return;
+ }
+ proguardConfigsBuilder.addTransitive(provider.getTransitiveProguardSpecs());
}
/**
@@ -205,7 +215,7 @@ public class AndroidIdlHelper {
* Returns the idl_srcs defined on the given rule.
*/
private static Collection<Artifact> getIdlSrcs(RuleContext ruleContext) {
- if (!hasIdlSrcs(ruleContext)) {
+ if (!ruleContext.getRule().isAttrDefined("idl_srcs", BuildType.LABEL_LIST)) {
return ImmutableList.of();
}
checkIdlSrcsSamePackage(ruleContext);
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 a3ab7878b9..2a453da46a 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
@@ -59,7 +59,7 @@ public abstract class AndroidLibrary implements RuleConfiguredTargetFactory {
NestedSetBuilder<Artifact> proguardConfigsbuilder = NestedSetBuilder.stableOrder();
proguardConfigsbuilder.addTransitive(new ProguardLibrary(ruleContext).collectProguardSpecs());
- AndroidIdlHelper.addSupportLibProguardConfigs(ruleContext, proguardConfigsbuilder);
+ AndroidIdlHelper.maybeAddSupportLibProguardConfigs(ruleContext, proguardConfigsbuilder);
NestedSet<Artifact> transitiveProguardConfigs = proguardConfigsbuilder.build();
JavaCommon javaCommon =