aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main
diff options
context:
space:
mode:
authorGravatar cushon <cushon@google.com>2018-05-15 10:19:25 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-05-15 10:20:43 -0700
commit374112c3cab43cb37b4e1d2cd9fcef5e402007ea (patch)
tree6722b965cedbddb2e978682a2ea49fdb5ee16f81 /src/main
parent905291b7f69f316d4af885d51768dadf7accd9c9 (diff)
Replace --experimental_android_enforce_strict_deps_for_binaries_under_test with a package whitelist
PiperOrigin-RevId: 196688645
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/com/google/devtools/build/lib/BUILD1
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/android/BazelAndroidBinaryRule.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java19
4 files changed, 7 insertions, 21 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/BUILD b/src/main/java/com/google/devtools/build/lib/BUILD
index 9f193c82de..5281e04f76 100644
--- a/src/main/java/com/google/devtools/build/lib/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/BUILD
@@ -622,6 +622,7 @@ java_library(
"//src/main/java/com/google/devtools/build/lib:util",
"//src/main/java/com/google/devtools/build/lib/actions",
"//src/main/java/com/google/devtools/build/lib/analysis/platform",
+ "//src/main/java/com/google/devtools/build/lib/analysis/whitelisting",
"//src/main/java/com/google/devtools/build/lib/buildeventstream",
"//src/main/java/com/google/devtools/build/lib/buildeventstream/proto:build_event_stream_java_proto",
"//src/main/java/com/google/devtools/build/lib/cmdline",
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/BazelAndroidBinaryRule.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/BazelAndroidBinaryRule.java
index d37837389f..7e91cdc941 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/BazelAndroidBinaryRule.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/BazelAndroidBinaryRule.java
@@ -15,6 +15,7 @@ package com.google.devtools.build.lib.bazel.rules.android;
import com.google.devtools.build.lib.analysis.RuleDefinition;
import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;
+import com.google.devtools.build.lib.analysis.whitelisting.Whitelist;
import com.google.devtools.build.lib.bazel.rules.cpp.BazelCppRuleClasses;
import com.google.devtools.build.lib.bazel.rules.java.BazelJavaRuleClasses;
import com.google.devtools.build.lib.packages.RuleClass;
@@ -66,6 +67,9 @@ public class BazelAndroidBinaryRule implements RuleDefinition {
</ul>
<!-- #END_BLAZE_RULE.IMPLICIT_OUTPUTS --> */
.setImplicitOutputsFunction(AndroidRuleClasses.ANDROID_BINARY_IMPLICIT_OUTPUTS)
+ .add(
+ Whitelist.getAttributeFromWhitelistName("export_deps")
+ .value(environment.getToolsLabel("//tools/android:export_deps_whitelist")))
.cfg(
new ConfigFeatureFlagTransitionFactory(AndroidFeatureFlagSetProvider.FEATURE_FLAG_ATTR))
.addRequiredToolchains(CppRuleClasses.ccToolchainTypeAttribute(environment))
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java
index 0b7706918c..5ab5c81b0e 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java
@@ -50,6 +50,7 @@ import com.google.devtools.build.lib.analysis.actions.ParameterFileWriteAction;
import com.google.devtools.build.lib.analysis.actions.SpawnAction;
import com.google.devtools.build.lib.analysis.actions.SpawnActionTemplate;
import com.google.devtools.build.lib.analysis.configuredtargets.RuleConfiguredTarget.Mode;
+import com.google.devtools.build.lib.analysis.whitelisting.Whitelist;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
@@ -117,8 +118,7 @@ public abstract class AndroidBinary implements RuleConfiguredTargetFactory {
new AndroidCommon(
javaCommon,
/* asNeverLink= */ true,
- /* exportDeps= */ !AndroidCommon.getAndroidConfig(ruleContext)
- .getEnforceStrictDepsForBinariesUnderTest());
+ /* exportDeps= */ Whitelist.isAvailable(ruleContext, "export_deps"));
ResourceDependencies resourceDeps =
ResourceDependencies.fromRuleDeps(ruleContext, /* neverlink= */ false);
RuleConfiguredTargetBuilder builder =
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 421afdbea6..9f9b442b84 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
@@ -817,16 +817,6 @@ public class AndroidConfiguration extends BuildConfiguration.Fragment {
+ "when possible. Otherwise, they will all be processed together.")
public boolean decoupleDataProcessing;
- // TODO(cushon): make this the default, and delete it
- @Option(
- name = "experimental_android_enforce_strict_deps_for_binaries_under_test",
- defaultValue = "false",
- documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
- effectTags = {OptionEffectTag.BUILD_FILE_SEMANTICS},
- help = "If enabled, strict dependencies are enforced for android_test.binary_under_test"
- )
- public boolean enforceStrictDepsForBinariesUnderTest;
-
@Option(
name = "android_migration_tag_check",
defaultValue = "false",
@@ -875,7 +865,6 @@ public class AndroidConfiguration extends BuildConfiguration.Fragment {
host.manifestMerger = manifestMerger;
host.androidAaptVersion = androidAaptVersion;
host.allowAndroidLibraryDepsWithoutSrcs = allowAndroidLibraryDepsWithoutSrcs;
- host.enforceStrictDepsForBinariesUnderTest = enforceStrictDepsForBinariesUnderTest;
host.oneVersionEnforcementUseTransitiveJarsForBinaryUnderTest =
oneVersionEnforcementUseTransitiveJarsForBinaryUnderTest;
return host;
@@ -935,7 +924,6 @@ public class AndroidConfiguration extends BuildConfiguration.Fragment {
private final boolean fixedResourceNeverlinking;
private final AndroidRobolectricTestDeprecationLevel robolectricTestDeprecationLevel;
private final boolean decoupleDataProcessing;
- private final boolean enforceStrictDepsForBinariesUnderTest;
private final boolean checkForMigrationTag;
private final boolean oneVersionEnforcementUseTransitiveJarsForBinaryUnderTest;
@@ -977,7 +965,6 @@ public class AndroidConfiguration extends BuildConfiguration.Fragment {
this.fixedResourceNeverlinking = options.fixedResourceNeverlinking;
this.robolectricTestDeprecationLevel = options.robolectricTestDeprecationLevel;
this.decoupleDataProcessing = options.decoupleDataProcessing;
- this.enforceStrictDepsForBinariesUnderTest = options.enforceStrictDepsForBinariesUnderTest;
this.checkForMigrationTag = options.checkForMigrationTag;
this.oneVersionEnforcementUseTransitiveJarsForBinaryUnderTest =
options.oneVersionEnforcementUseTransitiveJarsForBinaryUnderTest;
@@ -1033,7 +1020,6 @@ public class AndroidConfiguration extends BuildConfiguration.Fragment {
boolean fixedResourceNeverlinking,
AndroidRobolectricTestDeprecationLevel robolectricTestDeprecationLevel,
boolean decoupleDataProcessing,
- boolean enforceStrictDepsForBinariesUnderTest,
boolean checkForMigrationTag,
boolean oneVersionEnforcementUseTransitiveJarsForBinaryUnderTest) {
this.enableAndroidCpuMakeVariable = enableAndroidCpuMakeVariable;
@@ -1070,7 +1056,6 @@ public class AndroidConfiguration extends BuildConfiguration.Fragment {
this.fixedResourceNeverlinking = fixedResourceNeverlinking;
this.robolectricTestDeprecationLevel = robolectricTestDeprecationLevel;
this.decoupleDataProcessing = decoupleDataProcessing;
- this.enforceStrictDepsForBinariesUnderTest = enforceStrictDepsForBinariesUnderTest;
this.checkForMigrationTag = checkForMigrationTag;
this.oneVersionEnforcementUseTransitiveJarsForBinaryUnderTest =
oneVersionEnforcementUseTransitiveJarsForBinaryUnderTest;
@@ -1225,10 +1210,6 @@ public class AndroidConfiguration extends BuildConfiguration.Fragment {
return decoupleDataProcessing;
}
- public boolean getEnforceStrictDepsForBinariesUnderTest() {
- return enforceStrictDepsForBinariesUnderTest;
- }
-
public boolean checkForMigrationTag() {
return checkForMigrationTag;
}