Clean up --strict_android_deps and --strict_java_deps
Consolitate the two flags now that --strict_android_deps is rolled out. Also
propagate --strict_java_deps into the host config.
Fixes #1896
--
MOS_MIGRATED_REVID=135679732
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 b99ee50..b13e8d6 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
@@ -13,10 +13,6 @@
// limitations under the License.
package com.google.devtools.build.lib.rules.android;
-import static com.google.devtools.build.lib.analysis.config.BuildConfiguration.StrictDepsMode.DEFAULT;
-import static com.google.devtools.build.lib.analysis.config.BuildConfiguration.StrictDepsMode.ERROR;
-import static com.google.devtools.build.lib.analysis.config.BuildConfiguration.StrictDepsMode.STRICT;
-
import com.google.common.base.Optional;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
@@ -35,7 +31,6 @@
import com.google.devtools.build.lib.analysis.TransitiveInfoProvider;
import com.google.devtools.build.lib.analysis.actions.FileWriteAction;
import com.google.devtools.build.lib.analysis.actions.SpawnAction;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration.StrictDepsMode;
import com.google.devtools.build.lib.collect.IterablesChain;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
@@ -605,7 +600,6 @@
ruleContext, semantics, javaCommon.getJavacOpts(), attributes);
helper.addLibrariesToAttributes(javaCommon.targetsTreatedAsDeps(ClasspathType.COMPILE_ONLY));
- attributes.setStrictJavaDeps(getStrictAndroidDeps());
attributes.setRuleKind(ruleContext.getRule().getRuleClass());
attributes.setTargetLabel(ruleContext.getLabel());
@@ -615,13 +609,6 @@
return helper;
}
- private StrictDepsMode getStrictAndroidDeps() {
- // Get command line strict_android_deps option
- StrictDepsMode strict = ruleContext.getFragment(AndroidConfiguration.class).getStrictDeps();
- // Use option if anything but DEFAULT, which is now equivalent to ERROR.
- return (strict != DEFAULT && strict != STRICT) ? strict : ERROR;
- }
-
JackCompilationHelper initJack(JavaTargetAttributes attributes) throws InterruptedException {
AndroidSdkProvider sdk = AndroidSdkProvider.fromRuleContext(ruleContext);
return new JackCompilationHelper.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 9aaced1..e718d82 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
@@ -22,8 +22,6 @@
import com.google.devtools.build.lib.analysis.config.BuildConfiguration.EmptyToNullLabelConverter;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration.Fragment;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration.LabelConverter;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration.StrictDepsConverter;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration.StrictDepsMode;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
import com.google.devtools.build.lib.analysis.config.ConfigurationEnvironment;
import com.google.devtools.build.lib.analysis.config.ConfigurationFragmentFactory;
@@ -278,15 +276,6 @@
)
public DynamicModeFlag dynamicMode;
- @Option(name = "strict_android_deps",
- allowMultiple = false,
- defaultValue = "default",
- converter = StrictDepsConverter.class,
- category = "semantics",
- help = "If true, checks that an Android target explicitly declares all directly used "
- + "targets as dependencies.")
- public StrictDepsMode strictDeps;
-
// Label of filegroup combining all Android tools used as implicit dependencies of
// android_* rules
@Option(name = "android_sdk",
@@ -500,7 +489,6 @@
}
private final Label sdk;
- private final StrictDepsMode strictDeps;
private final String cpu;
private final boolean incrementalNativeLibs;
private final ConfigurationDistinguisher configurationDistinguisher;
@@ -521,7 +509,6 @@
AndroidConfiguration(Options options, Label androidSdk) {
this.sdk = androidSdk;
this.incrementalNativeLibs = options.incrementalNativeLibs;
- this.strictDeps = options.strictDeps;
this.cpu = options.cpu;
this.configurationDistinguisher = options.configurationDistinguisher;
this.useJackForDexing = options.useJackForDexing;
@@ -553,10 +540,6 @@
return sdk;
}
- public StrictDepsMode getStrictDeps() {
- return strictDeps;
- }
-
/**
* Returns true if Jack should be used in place of javac/dx for Android compilation.
*/
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java
index ebbb548..212784b 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java
@@ -208,13 +208,17 @@
)
public Void javaTestDebug;
- @Option(name = "strict_java_deps",
- allowMultiple = false,
- defaultValue = "default",
- converter = StrictDepsConverter.class,
- category = "semantics",
- help = "If true, checks that a Java target explicitly declares all directly used "
- + "targets as dependencies.")
+ @Option(
+ name = "strict_java_deps",
+ allowMultiple = false,
+ defaultValue = "default",
+ converter = StrictDepsConverter.class,
+ category = "semantics",
+ help =
+ "If true, checks that a Java target explicitly declares all directly used "
+ + "targets as dependencies.",
+ oldName = "strict_android_deps"
+ )
public StrictDepsMode strictJavaDeps;
@Option(
@@ -382,6 +386,8 @@
host.javaDeps = javaDeps;
host.javaClasspath = javaClasspath;
+ host.strictJavaDeps = strictJavaDeps;
+
return host;
}