Allow opaque OptionsClassProvider to be passed around in BuildDriver#meta et all so that custom implementations can have custom options passed around.

--
MOS_MIGRATED_REVID=112502778
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
index 1bae0b7..517a33f 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
@@ -138,6 +138,7 @@
 import com.google.devtools.build.skyframe.SkyValue;
 import com.google.devtools.build.skyframe.WalkableGraph;
 import com.google.devtools.build.skyframe.WalkableGraph.WalkableGraphFactory;
+import com.google.devtools.common.options.OptionsClassProvider;
 
 import java.io.IOException;
 import java.io.PrintStream;
@@ -1464,9 +1465,9 @@
    * Get metadata related to the prepareAndGet() lookup. Resulting data is specific to the
    * underlying evaluation implementation.
    */
-  public String prepareAndGetMetadata(Collection<String> patterns, String offset)
-      throws AbruptExitException, InterruptedException {
-    return buildDriver.meta(ImmutableList.of(getUniverseKey(patterns, offset)));
+   public String prepareAndGetMetadata(Collection<String> patterns, String offset,
+      OptionsClassProvider options) throws AbruptExitException, InterruptedException {
+    return buildDriver.meta(ImmutableList.of(getUniverseKey(patterns, offset)), options);
   }
 
   @Override
diff --git a/src/main/java/com/google/devtools/build/skyframe/BUILD b/src/main/java/com/google/devtools/build/skyframe/BUILD
index f89eb51..19a32a0 100644
--- a/src/main/java/com/google/devtools/build/skyframe/BUILD
+++ b/src/main/java/com/google/devtools/build/skyframe/BUILD
@@ -14,6 +14,7 @@
         "//src/main/java/com/google/devtools/build/lib:events",
         "//src/main/java/com/google/devtools/build/lib:util",
         "//src/main/java/com/google/devtools/build/lib:vfs",
+        "//src/main/java/com/google/devtools/common/options",
         "//third_party:guava",
         "//third_party:jsr305",
     ],
diff --git a/src/main/java/com/google/devtools/build/skyframe/BuildDriver.java b/src/main/java/com/google/devtools/build/skyframe/BuildDriver.java
index a63afc7..6fe62ec 100644
--- a/src/main/java/com/google/devtools/build/skyframe/BuildDriver.java
+++ b/src/main/java/com/google/devtools/build/skyframe/BuildDriver.java
@@ -16,6 +16,7 @@
 
 import com.google.devtools.build.lib.events.EventHandler;
 import com.google.devtools.build.lib.util.AbruptExitException;
+import com.google.devtools.common.options.OptionsClassProvider;
 
 import javax.annotation.Nullable;
 
@@ -35,7 +36,9 @@
    * Retrieve metadata about the computation over the given roots. Data returned is specific to the
    * underlying evaluator implementation.
    */
-  String meta(Iterable<SkyKey> roots) throws AbruptExitException, InterruptedException;
+  String meta(Iterable<SkyKey> roots, OptionsClassProvider options)
+      throws AbruptExitException, InterruptedException;
+
 
   MemoizingEvaluator getGraphForTesting();
 
diff --git a/src/main/java/com/google/devtools/build/skyframe/SequentialBuildDriver.java b/src/main/java/com/google/devtools/build/skyframe/SequentialBuildDriver.java
index 8f76b15..99e2ef0 100644
--- a/src/main/java/com/google/devtools/build/skyframe/SequentialBuildDriver.java
+++ b/src/main/java/com/google/devtools/build/skyframe/SequentialBuildDriver.java
@@ -15,6 +15,7 @@
 
 import com.google.devtools.build.lib.events.EventHandler;
 import com.google.devtools.build.lib.util.Preconditions;
+import com.google.devtools.common.options.OptionsClassProvider;
 
 import javax.annotation.Nullable;
 
@@ -42,7 +43,7 @@
   }
 
  @Override
- public String meta(Iterable<SkyKey> of) {
+ public String meta(Iterable<SkyKey> of, OptionsClassProvider options) {
    return "";
  }