Make platform options required by all targets.
Platform options are used for toolchain resolution and platform mappings, both of which are required by all targets. Marking them as a universal options fragment.
RELNOTES: None.
PiperOrigin-RevId: 244189499
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java
index e36fa0d..ede7574 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java
@@ -23,6 +23,7 @@
import com.google.devtools.build.lib.actions.ActionEnvironment;
import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider;
import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider.RuleSet;
+import com.google.devtools.build.lib.analysis.PlatformConfiguration;
import com.google.devtools.build.lib.analysis.ShellConfiguration;
import com.google.devtools.build.lib.analysis.ShellConfiguration.ShellExecutableProvider;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
@@ -220,17 +221,17 @@
.setPrelude("//tools/build_rules:prelude_bazel")
.setRunfilesPrefix(LabelConstants.DEFAULT_REPOSITORY_DIRECTORY)
.setPrerequisiteValidator(new BazelPrerequisiteValidator())
- .setActionEnvironmentProvider(SHELL_ACTION_ENV);
-
- builder.addConfigurationOptions(ShellConfiguration.Options.class);
- builder.addConfigurationFragment(
- new ShellConfiguration.Loader(
- SHELL_EXECUTABLE,
- ShellConfiguration.Options.class,
- StrictActionEnvOptions.class));
- builder.addUniversalConfigurationFragment(ShellConfiguration.class);
- builder.addConfigurationOptions(StrictActionEnvOptions.class);
- builder.addConfigurationOptions(BuildConfiguration.Options.class);
+ .setActionEnvironmentProvider(SHELL_ACTION_ENV)
+ .addConfigurationOptions(ShellConfiguration.Options.class)
+ .addConfigurationFragment(
+ new ShellConfiguration.Loader(
+ SHELL_EXECUTABLE,
+ ShellConfiguration.Options.class,
+ StrictActionEnvOptions.class))
+ .addUniversalConfigurationFragment(ShellConfiguration.class)
+ .addUniversalConfigurationFragment(PlatformConfiguration.class)
+ .addConfigurationOptions(StrictActionEnvOptions.class)
+ .addConfigurationOptions(BuildConfiguration.Options.class);
}
@Override
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/ConfigurationsForTargetsWithTrimmedConfigurationsTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/ConfigurationsForTargetsWithTrimmedConfigurationsTest.java
index ad07f6e..3db94c7 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/ConfigurationsForTargetsWithTrimmedConfigurationsTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/ConfigurationsForTargetsWithTrimmedConfigurationsTest.java
@@ -191,11 +191,14 @@
@Override
public BuildOptions patch(BuildOptions options) {
+ if (!options.contains(TestConfiguration.TestOptions.class)) {
+ return options;
+ }
+
BuildOptions result = options.clone();
TestConfiguration.TestOptions testOpts = result.get(TestConfiguration.TestOptions.class);
- ImmutableList<String> testArgs =
+ testOpts.testArguments =
new ImmutableList.Builder<String>().addAll(testOpts.testArguments).add(argument).build();
- testOpts.testArguments = testArgs;
return result;
}
}