More runfiles consolidation

--
MOS_MIGRATED_REVID=95261769
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/RunfilesSupplierImpl.java b/src/main/java/com/google/devtools/build/lib/analysis/RunfilesSupplierImpl.java
index 0546988..33974e2 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/RunfilesSupplierImpl.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/RunfilesSupplierImpl.java
@@ -19,6 +19,7 @@
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Iterables;
 import com.google.devtools.build.lib.actions.Artifact;
+import com.google.devtools.build.lib.actions.BaseSpawn;
 import com.google.devtools.build.lib.actions.RunfilesSupplier;
 import com.google.devtools.build.lib.vfs.PathFragment;
 
@@ -34,6 +35,17 @@
   private final ImmutableMap<PathFragment, Runfiles> inputRunfiles;
 
   /**
+   * Create an instance for an executable.
+   *
+   * @param executable the executable the runfiles are for, used for determining the runfiles
+   *    directory
+   * @param runfiles the associated runfiles
+   */
+  public RunfilesSupplierImpl(Artifact executable, Runfiles runfiles) {
+    this(BaseSpawn.runfilesForFragment(executable.getExecPath()), runfiles);
+  }
+
+  /**
    * Create an instance when you have a a single mapping.
    *
    * @param runfilesDir the desired runfiles directory. Should be relative.