Remove the `direct_host_only` required fragments setting.
PiperOrigin-RevId: 400016860
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/CoreOptions.java b/src/main/java/com/google/devtools/build/lib/analysis/config/CoreOptions.java
index ae769d7..4ec09ca 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/CoreOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/CoreOptions.java
@@ -731,16 +731,16 @@
help =
"INTERNAL BLAZE DEVELOPER FEATURE: If \"direct\", all configured targets expose "
+ "RequiredConfigFragmentsProvider with the configuration fragments they directly "
- + "require (use \"direct_host_only\" to limit to targets in the host configuration). "
+ + "require. "
+ "If \"transitive\", they do the same but also include the fragments their "
+ "transitive dependencies require. If \"off\", the provider is omitted. "
+ ""
+ "If not \"off\", this also populates config_setting's "
- + " ConfigMatchingProvider.requiredFragmentOptions with the fragment options "
- + " the config_setting requires."
+ + "ConfigMatchingProvider.requiredFragmentOptions with the fragment options the "
+ + "config_setting requires."
+ ""
+ "Be careful using this feature: it adds memory to every configured target in the "
- + "build")
+ + "build.")
public IncludeConfigFragmentsEnum includeRequiredConfigFragmentsProvider;
@Option(
@@ -811,11 +811,6 @@
* information and don't need the extra memory hit over every configured target.
*/
OFF,
- /**
- * Provide the fragments required <em>directly</em> by this rule if it is being analyzed in the
- * host configuration.
- */
- DIRECT_HOST_ONLY,
/** Provide the fragments required <em>directly</em> by this rule. */
DIRECT,
/** Provide the fragments required by this rule and its transitive dependencies. */
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/RequiredFragmentsUtil.java b/src/main/java/com/google/devtools/build/lib/analysis/config/RequiredFragmentsUtil.java
index 6361a26..ee550f0 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/RequiredFragmentsUtil.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/RequiredFragmentsUtil.java
@@ -14,6 +14,8 @@
package com.google.devtools.build.lib.analysis.config;
+import static com.google.common.base.Preconditions.checkNotNull;
+
import com.google.common.collect.Collections2;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
@@ -282,16 +284,7 @@
private static boolean requiredFragmentsEnabled(BuildConfiguration config) {
IncludeConfigFragmentsEnum setting =
config.getOptions().get(CoreOptions.class).includeRequiredConfigFragmentsProvider;
- switch (setting) {
- case OFF:
- return false;
- case DIRECT_HOST_ONLY:
- return config.isHostConfiguration();
- case DIRECT:
- case TRANSITIVE:
- return true;
- }
- throw new AssertionError(setting);
+ return checkNotNull(setting) != IncludeConfigFragmentsEnum.OFF;
}
private RequiredFragmentsUtil() {}
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/RequiredConfigFragmentsTest.java b/src/test/java/com/google/devtools/build/lib/analysis/RequiredConfigFragmentsTest.java
index f1898f5..6cbdf8b 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/RequiredConfigFragmentsTest.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/RequiredConfigFragmentsTest.java
@@ -78,25 +78,6 @@
}
@Test
- public void provideDirectHostOnlyRequiredFragmentsMode() throws Exception {
- useConfiguration("--include_config_fragments_provider=direct_host_only");
- scratch.file(
- "a/BUILD",
- "py_library(name = 'pylib', srcs = ['pylib.py'])",
- "cc_library(name = 'cclib', srcs = ['cclb.cc'], data = [':pylib'])");
-
- RequiredConfigFragmentsProvider targetConfigProvider =
- getConfiguredTarget("//a:cclib").getProvider(RequiredConfigFragmentsProvider.class);
- RequiredConfigFragmentsProvider hostConfigProvider =
- getHostConfiguredTarget("//a:cclib").getProvider(RequiredConfigFragmentsProvider.class);
-
- assertThat(targetConfigProvider).isNull();
- assertThat(hostConfigProvider).isNotNull();
- assertThat(hostConfigProvider.getFragmentClasses()).contains(CppConfiguration.class);
- assertThat(hostConfigProvider.getFragmentClasses()).doesNotContain(PythonConfiguration.class);
- }
-
- @Test
public void requiresMakeVariablesSuppliedByDefine() throws Exception {
useConfiguration("--include_config_fragments_provider=direct", "--define", "myvar=myval");
scratch.file(
diff --git a/src/test/shell/integration/configured_query_test.sh b/src/test/shell/integration/configured_query_test.sh
index bc5c48e..040ca56 100755
--- a/src/test/shell/integration/configured_query_test.sh
+++ b/src/test/shell/integration/configured_query_test.sh
@@ -450,32 +450,6 @@
assert_not_contains "//$pkg:cclib_with_py_dep .*PythonConfiguration" output
}
-function test_show_direct_host_only_config_fragments() {
- local -r pkg=$FUNCNAME
- mkdir -p $pkg
- cat > $pkg/BUILD <<'EOF'
-genrule(
- name = "gen",
- outs = ["gen.out"],
- cmd = "$(location :tool) > $@",
- tools = [":tool"],
-)
-
-genrule(
- name = "tool",
- outs = ["tool.sh"],
- cmd = 'echo "echo built by TOOL" > $@',
-)
-EOF
-
- bazel cquery "deps(//$pkg:gen)" --show_config_fragments=direct_host_only \
- > output 2>"$TEST_log" || fail "Expected success"
-
- assert_contains "//$pkg:gen" output
- assert_not_contains "//$pkg:gen .*CoreOptions" output
- assert_contains "//$pkg:tool .*CoreOptions" output
-}
-
function test_show_direct_config_fragments_select() {
local -r pkg=$FUNCNAME
mkdir -p $pkg