aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java
diff options
context:
space:
mode:
authorGravatar asteinb <asteinb@google.com>2018-05-30 11:41:10 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-05-30 11:42:44 -0700
commit9c53da2386c60646fa96c84235e5a3cc9238030f (patch)
tree79a37922f003b8553446a469b22dd5ca6a0ab9a9 /src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java
parenta14d421edc898f50e3d269a74c5844c587d56abe (diff)
Allow rules that provide resources and assets as deps of android_* rules
These restrictions were originally put in place to prevent things like android_binary from being used as dependencies of android_library. However, it doesn't actually work - the restrictions are all ORed together, and that means rules that are of the allowed kind OR that have a JavaProvider are allowed. Since all android_binary targets presumably have Java providers, they are presumably all allowed. Slightly expand these restrictions by also allowing rules that have Android resource and asset providers. This will allow us to use Skylark rules to only inherit assets and resources from a target, but not anything else. I don't anticipate this expansion will have unwanted side effects, since virtually all Android targets already have Java providers anyway. RELNOTES: none PiperOrigin-RevId: 198593996
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java3
1 files changed, 3 insertions, 0 deletions
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 629c000b66..3ed06c9807 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
@@ -672,6 +672,9 @@ public final class AndroidRuleClasses {
.allowedRuleClasses(ALLOWED_DEPENDENCIES)
.allowedFileTypes()
.mandatoryProviders(JavaRuleClasses.CONTAINS_JAVA_PROVIDER)
+ .mandatoryProviders(
+ SkylarkProviderIdentifier.forKey(AndroidResourcesInfo.PROVIDER.getKey()),
+ SkylarkProviderIdentifier.forKey(AndroidAssetsInfo.PROVIDER.getKey()))
.aspect(androidNeverlinkAspect)
.aspect(dexArchiveAspect, DexArchiveAspect.PARAM_EXTRACTOR))
/* <!-- #BLAZE_RULE($android_binary_base).ATTRIBUTE(debug_key) -->