diff options
author | Googler <noreply@google.com> | 2017-02-28 23:56:07 +0000 |
---|---|---|
committer | Yue Gan <yueg@google.com> | 2017-03-01 12:34:48 +0000 |
commit | e450c00bf487c711f9b0615e9eb89980c5732b4a (patch) | |
tree | 9b0c28318d37b3fea671115534e3511fd3031d6b /src/main/java/com | |
parent | 8c00f398d7be863c4f502bde3f5d282b1e18f504 (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')
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 = |