Add getExec method to FragmentOptions.

This acts similarly to getHost, except:
1. It is intended to generate options for the exec transition, and
2. The default is to clone the options, not start with defaults.

Part of work on execution transitions, #7935.

PiperOrigin-RevId: 245418547
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/BuildOptions.java b/src/main/java/com/google/devtools/build/lib/analysis/config/BuildOptions.java
index ad6bf3c..c1b0945 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/BuildOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/BuildOptions.java
@@ -95,6 +95,15 @@
     return builder.addStarlarkOptions(skylarkOptionsMap).build();
   }
 
+  /** Creates a new BuildOptions instance for exec. */
+  public BuildOptions createExecOptions() {
+    Builder builder = builder();
+    for (FragmentOptions options : fragmentOptionsMap.values()) {
+      builder.addFragmentOptions(options.getExec());
+    }
+    return builder.addStarlarkOptions(skylarkOptionsMap).build();
+  }
+
   /**
    * Returns {@code BuildOptions} that are otherwise identical to this one, but contain only options
    * from the given {@link FragmentOptions} classes (plus build configuration options).
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/FragmentOptions.java b/src/main/java/com/google/devtools/build/lib/analysis/config/FragmentOptions.java
index 2ff277d..815effc 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/FragmentOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/FragmentOptions.java
@@ -47,12 +47,19 @@
    * Creates a new instance of this {@code FragmentOptions} with all flags adjusted as needed to
    * represent the host platform.
    */
-  @SuppressWarnings("unused")
   public FragmentOptions getHost() {
     return getDefault();
   }
 
   /**
+   * Creates a new instance of this {@code FragmentOptions} with all flags adjusted as needed to
+   * represent the execution platform.
+   */
+  public FragmentOptions getExec() {
+    return clone();
+  }
+
+  /**
    * Returns an instance of {@code FragmentOptions} with all flags adjusted to be suitable for
    * forming configurations.
    *