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;
     }
   }