aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2016-03-11 18:58:23 +0000
committerGravatar David Chen <dzc@google.com>2016-03-11 21:29:56 +0000
commit9beb1e2f1c774775813494b57a7c576390d846ed (patch)
tree4dfd8b3b5760b401bcea0ba43743f9a6902c43df /src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java
parent3c35021eb39218119328522acccebcfe652906a9 (diff)
Allow android_library with android resource attributes to have deps without srcs instead of throwing an error.
Implicit exporting of the deps of an android_library rule that doesn't have srcs is deprecated and will soon be removed. -- MOS_MIGRATED_REVID=116988446
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java9
1 files changed, 9 insertions, 0 deletions
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 189c3fd793..529e10f7b7 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
@@ -24,6 +24,7 @@ import com.google.devtools.build.lib.analysis.RuleContext;
import com.google.devtools.build.lib.analysis.config.CompilationMode;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
+import com.google.devtools.build.lib.packages.BuildType;
import com.google.devtools.build.lib.rules.RuleConfiguredTargetFactory;
import com.google.devtools.build.lib.rules.android.AndroidLibraryAarProvider.Aar;
import com.google.devtools.build.lib.rules.android.AndroidResourcesProvider.ResourceContainer;
@@ -103,6 +104,14 @@ public abstract class AndroidLibrary implements RuleConfiguredTargetFactory {
ResourceDependencies.fromRuleResourceAndDeps(ruleContext, false /* neverlink */));
}
+ if (!ruleContext.getFragment(AndroidConfiguration.class).allowSrcsLessAndroidLibraryDeps()
+ && !definesLocalResources
+ && ruleContext.attributes().get("srcs", BuildType.LABEL_LIST).isEmpty()
+ && ruleContext.attributes().get("idl_srcs", BuildType.LABEL_LIST).isEmpty()
+ && !ruleContext.attributes().get("deps", BuildType.LABEL_LIST).isEmpty()) {
+ ruleContext.attributeError("deps", "deps not allowed without srcs; move to exports?");
+ }
+
JavaTargetAttributes javaTargetAttributes = androidCommon.init(
javaSemantics,
androidSemantics,