diff options
author | asteinb <asteinb@google.com> | 2018-05-30 11:41:10 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-05-30 11:42:44 -0700 |
commit | 9c53da2386c60646fa96c84235e5a3cc9238030f (patch) | |
tree | 79a37922f003b8553446a469b22dd5ca6a0ab9a9 /src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java | |
parent | a14d421edc898f50e3d269a74c5844c587d56abe (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.java | 3 |
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) --> |