aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules
diff options
context:
space:
mode:
authorGravatar cushon <cushon@google.com>2018-07-03 22:28:44 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-07-03 22:30:09 -0700
commitd292b34b97970b934a1061e13e2d67844bd083e7 (patch)
tree9ef9a60ca79a74a7366eaca72848eb5bdbae2bdc /src/main/java/com/google/devtools/build/lib/rules
parent6b8c7ca48e9e48a9906c031346dc4a924b7ef559 (diff)
Create a whitelist for android_library rules with deps but not srcs
PiperOrigin-RevId: 203230801
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java2
3 files changed, 6 insertions, 4 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 76ec398342..88128becae 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
@@ -759,7 +759,7 @@ public class AndroidCommon {
!hasSrcs
&& ruleContext
.getFragment(AndroidConfiguration.class)
- .allowSrcsLessAndroidLibraryDeps();
+ .allowSrcsLessAndroidLibraryDeps(ruleContext);
return javaCommon.collectJavaCompilationArgs(isNeverLink, exportDeps);
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java
index 810b2cb8a6..64f2bc88d2 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java
@@ -27,6 +27,7 @@ import com.google.devtools.build.lib.analysis.config.ConfigurationFragmentFactor
import com.google.devtools.build.lib.analysis.config.FragmentOptions;
import com.google.devtools.build.lib.analysis.config.InvalidConfigurationException;
import com.google.devtools.build.lib.analysis.skylark.annotations.SkylarkConfigurationField;
+import com.google.devtools.build.lib.analysis.whitelisting.Whitelist;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.packages.RuleClass.ConfiguredTargetFactory.RuleErrorException;
@@ -1138,8 +1139,9 @@ public class AndroidConfiguration extends BuildConfiguration.Fragment
return useRexToCompressDexFiles;
}
- public boolean allowSrcsLessAndroidLibraryDeps() {
- return allowAndroidLibraryDepsWithoutSrcs;
+ public boolean allowSrcsLessAndroidLibraryDeps(RuleContext ruleContext) {
+ return allowAndroidLibraryDepsWithoutSrcs
+ && Whitelist.isAvailable(ruleContext, "allow_deps_without_srcs");
}
public boolean useAndroidResourceShrinking() {
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 7c142a167e..f65080041d 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
@@ -62,7 +62,7 @@ public abstract class AndroidLibrary implements RuleConfiguredTargetFactory {
+ "targets implicitly. Please use android_library.exports to explicitly specify "
+ "targets this rule exports";
AndroidConfiguration androidConfig = ruleContext.getFragment(AndroidConfiguration.class);
- if (androidConfig.allowSrcsLessAndroidLibraryDeps()) {
+ if (androidConfig.allowSrcsLessAndroidLibraryDeps(ruleContext)) {
ruleContext.attributeWarning("deps", message);
} else {
ruleContext.attributeError("deps", message);