aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java
diff options
context:
space:
mode:
authorGravatar Lukacs Berki <lberki@google.com>2015-05-29 10:06:30 +0000
committerGravatar Lukacs Berki <lberki@google.com>2015-05-29 10:54:35 +0000
commitac4f942bf0c0d5c61125650784dca67b65268506 (patch)
tree2903967c1518979b41a085ec798a1fdbe9a7e02f /src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java
parent1ae987e689f78ae5941e93f1a3ee1323630051cf (diff)
Use an aspect to calculate the Android neverlink libraries.
This cuts the .java -> .android dependency between Java packages, which is nice at the cost of some cavalier over-estimation of the direct dependencies in AndroidNeverlinkAspect. -- MOS_MIGRATED_REVID=94745544
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.java9
1 files changed, 7 insertions, 2 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 6664288934..f859fc47e7 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
@@ -45,6 +45,7 @@ import com.google.devtools.build.lib.packages.RuleClass.Builder;
import com.google.devtools.build.lib.packages.RuleClass.Builder.RuleClassType;
import com.google.devtools.build.lib.packages.TriState;
import com.google.devtools.build.lib.packages.Type;
+import com.google.devtools.build.lib.rules.java.JavaCompilationArgsProvider;
import com.google.devtools.build.lib.rules.java.JavaSemantics;
import com.google.devtools.build.lib.syntax.Label;
import com.google.devtools.build.lib.util.FileType;
@@ -551,8 +552,11 @@ public final class AndroidRuleClasses {
<code>cc_library</code> wrapping or producing <code>.so</code> native libraries for the
Android target platform.
<!-- #END_BLAZE_RULE.ATTRIBUTE --> */
- .override(builder.copy("deps").cfg(ANDROID_SPLIT_TRANSITION)
- .allowedRuleClasses(ALLOWED_DEPENDENCIES).allowedFileTypes())
+ .override(builder.copy("deps")
+ .cfg(ANDROID_SPLIT_TRANSITION)
+ .allowedRuleClasses(ALLOWED_DEPENDENCIES)
+ .allowedFileTypes()
+ .aspect(AndroidNeverlinkAspect.class))
// Proguard rule specifying master list of classes to keep during legacy multidexing.
.add(attr("$build_incremental_dexmanifest", LABEL).cfg(HOST).exec()
.value(env.getLabel(AndroidRuleClasses.BUILD_INCREMENTAL_DEXMANIFEST_LABEL)))
@@ -664,6 +668,7 @@ com/google/common/base/Objects.class
</ul>
<!-- #END_BLAZE_RULE.ATTRIBUTE --> */
.add(attr("legacy_native_support", TRISTATE).value(TriState.AUTO))
+ .advertiseProvider(JavaCompilationArgsProvider.class)
.build();
}