diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib')
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; } |