Now that rules find their tools via runfiles, remove unneeded dependencies in rules/tests and move them into the build files.
Fix up environment_plist so it works like the other scripts.

--
MOS_MIGRATED_REVID=113799298
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/BundleSupport.java b/src/main/java/com/google/devtools/build/lib/rules/objc/BundleSupport.java
index d2c7239..05ab0a5 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/BundleSupport.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/BundleSupport.java
@@ -238,10 +238,6 @@
               .setCommandLine(ibActionsCommandLine(archiveRoot, zipOutput, storyboardInput))
               .addOutput(zipOutput)
               .addInput(storyboardInput)
-              // TODO(dmaclach): Adding realpath and xcrunwrapper should not be required once
-              // https://github.com/bazelbuild/bazel/issues/285 is fixed.
-              .addInput(attributes.realpath())
-              .addInput(CompilationSupport.xcrunwrapper(ruleContext).getExecutable())
               .setVerboseFailuresAndSubcommandsInEnv()
               .build(ruleContext));
     }
@@ -282,12 +278,8 @@
               .setExecutable(attributes.momcWrapper())
               .addOutput(outputZip)
               .addInputs(datamodel.getInputs())
-              // TODO(dmaclach): Adding realpath and xcrunwrapper should not be required once
-              // https://github.com/google/bazel/issues/285 is fixed.
-              .addInput(attributes.realpath())
-              .addInput(CompilationSupport.xcrunwrapper(ruleContext).getExecutable())
               .setVerboseFailuresAndSubcommandsInEnv()
-             .setCommandLine(CustomCommandLine.builder()
+              .setCommandLine(CustomCommandLine.builder()
                   .addPath(outputZip.getExecPath())
                   .add(datamodel.archiveRootForMomczip())
                   .add("-XD_MOMC_SDKROOT=" + AppleToolchain.sdkDir())
@@ -316,10 +308,6 @@
               .setCommandLine(ibActionsCommandLine(archiveRoot, zipOutput, original))
               .addOutput(zipOutput)
               .addInput(original)
-              // TODO(dmaclach): Adding realpath and xcrunwrapper should not be required once
-              // https://github.com/bazelbuild/bazel/issues/285 is fixed.
-              .addInput(attributes.realpath())
-              .addInput(CompilationSupport.xcrunwrapper(ruleContext).getExecutable())
               .setVerboseFailuresAndSubcommandsInEnv()
               .build(ruleContext));
     }
@@ -400,10 +388,6 @@
             .addTransitiveInputs(objcProvider.get(ASSET_CATALOG))
             .addOutput(zipOutput)
             .addOutput(actoolPartialInfoplist)
-            // TODO(dmaclach): Adding realpath and xcrunwrapper should not be required once
-            // https://github.com/google/bazel/issues/285 is fixed.
-            .addInput(attributes.realpath())
-            .addInput(CompilationSupport.xcrunwrapper(ruleContext).getExecutable())
             .setVerboseFailuresAndSubcommandsInEnv()
             .setCommandLine(actoolzipCommandLine(
                 objcProvider,
@@ -496,15 +480,6 @@
     }
 
     /**
-     * Returns the location of the realpath tool.
-     * TODO(dmaclach): Should not be required once https://github.com/bazelbuild/bazel/issues/285
-     * is fixed.
-     */
-    Artifact realpath() {
-      return ruleContext.getPrerequisiteArtifact("$realpath", Mode.HOST);
-    }
-
-    /**
      * Returns the location of the momcwrapper.
      */
     FilesToRunProvider momcWrapper() {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcRuleClasses.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcRuleClasses.java
index 4f1cd36..9849565 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcRuleClasses.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcRuleClasses.java
@@ -517,10 +517,6 @@
               .value(env.getLabel(env.getToolsRepository() + "//tools/objc:actoolwrapper")))
           .add(attr("$ibtoolwrapper", LABEL).cfg(HOST).exec()
               .value(env.getLabel(env.getToolsRepository() + "//tools/objc:ibtoolwrapper")))
-          // TODO(dmaclach): Adding realpath here should not be required once
-          // https://github.com/bazelbuild/bazel/issues/285 is fixed.
-          .add(attr("$realpath", LABEL).cfg(HOST).exec()
-              .value(env.getLabel(env.getToolsRepository() + "//tools/objc:realpath")))
           .build();
     }
     @Override
@@ -979,11 +975,11 @@
                   .exec()
                   .value(env.getLabel(env.getToolsRepository() + "//tools/objc:bundlemerge")))
           .add(
-              attr("$environment_plist_sh", LABEL)
+              attr("$environment_plist", LABEL)
                   .cfg(HOST)
-                  .value(
-                      env.getLabel(
-                          env.getToolsRepository() + "//tools/objc:environment_plist.sh")))
+                  .exec()
+                  .value(env.getLabel(
+                      env.getToolsRepository() + "//tools/objc:environment_plist")))
           .build();
     }
     @Override
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingSupport.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingSupport.java
index 6741b92..2434d88 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingSupport.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingSupport.java
@@ -388,8 +388,7 @@
     ruleContext.registerAction(
         ObjcRuleClasses.spawnOnDarwinActionBuilder()
             .setMnemonic("EnvironmentPlist")
-            .addInput(attributes.environmentPlistScript())
-            .setExecutable(attributes.environmentPlistScript())
+            .setExecutable(attributes.environmentPlist())
             .addArguments("--platform", platformWithVersion)
             .addArguments("--output", getGeneratedEnvironmentPlist().getExecPathString())
             .addOutput(getGeneratedEnvironmentPlist())
@@ -887,10 +886,6 @@
             .setCommandLine(commandLine.build())
             .addOutput(intermediateArtifacts.swiftFrameworksFileZip())
             .addInput(intermediateArtifacts.combinedArchitectureBinary())
-            // TODO(dmaclach): Adding realpath and xcrunwrapper should not be required once
-            // https://github.com/google/bazel/issues/285 is fixed.
-            .addInput(attributes.realpath())
-            .addInput(CompilationSupport.xcrunwrapper(ruleContext).getExecutable())
             .build(ruleContext));
   }
 
@@ -1023,20 +1018,10 @@
     }
 
     /**
-     * Returns the location of the realpath tool.
-     * TODO(dmaclach): Should not be required once https://github.com/google/bazel/issues/285
-     * is fixed.
+     * Returns the location of the environment_plist.
      */
-    Artifact realpath() {
-      return ruleContext.getPrerequisiteArtifact("$realpath", Mode.HOST);
-    }
-
-    /**
-     * Returns the location of the environment_plist.sh.
-     */
-    public Artifact environmentPlistScript() {
-      return checkNotNull(
-          ruleContext.getPrerequisiteArtifact("$environment_plist_sh", Mode.HOST));
+    public FilesToRunProvider environmentPlist() {
+      return ruleContext.getExecutablePrerequisite("$environment_plist", Mode.HOST);
     }
 
     String bundleId() {
diff --git a/src/tools/xcode/actoolwrapper/BUILD b/src/tools/xcode/actoolwrapper/BUILD
index 76c7532..8f717ab 100644
--- a/src/tools/xcode/actoolwrapper/BUILD
+++ b/src/tools/xcode/actoolwrapper/BUILD
@@ -8,5 +8,8 @@
 sh_binary(
     name = "actoolwrapper",
     srcs = ["actoolwrapper.sh"],
-    data = ["//src/tools/xcode/realpath:realpath_genrule"],
+    data = [
+        "//src/tools/xcode/realpath",
+        "//src/tools/xcode/xcrunwrapper",
+    ],
 )
diff --git a/src/tools/xcode/ibtoolwrapper/BUILD b/src/tools/xcode/ibtoolwrapper/BUILD
index bb00f72..266b067 100644
--- a/src/tools/xcode/ibtoolwrapper/BUILD
+++ b/src/tools/xcode/ibtoolwrapper/BUILD
@@ -8,5 +8,8 @@
 sh_binary(
     name = "ibtoolwrapper",
     srcs = ["ibtoolwrapper.sh"],
-    data = ["//src/tools/xcode/realpath:realpath_genrule"],
+    data = [
+        "//src/tools/xcode/realpath",
+        "//src/tools/xcode/xcrunwrapper",
+    ],
 )
diff --git a/src/tools/xcode/momcwrapper/BUILD b/src/tools/xcode/momcwrapper/BUILD
index dd959d1..d75c45d 100644
--- a/src/tools/xcode/momcwrapper/BUILD
+++ b/src/tools/xcode/momcwrapper/BUILD
@@ -8,5 +8,8 @@
 sh_binary(
     name = "momcwrapper",
     srcs = ["momcwrapper.sh"],
-    data = ["//src/tools/xcode/realpath:realpath_genrule"],
+    data = [
+        "//src/tools/xcode/realpath",
+        "//src/tools/xcode/xcrunwrapper",
+    ],
 )
diff --git a/src/tools/xcode/swiftstdlibtoolwrapper/BUILD b/src/tools/xcode/swiftstdlibtoolwrapper/BUILD
index ecbe656..a4af593 100644
--- a/src/tools/xcode/swiftstdlibtoolwrapper/BUILD
+++ b/src/tools/xcode/swiftstdlibtoolwrapper/BUILD
@@ -8,5 +8,8 @@
 sh_binary(
     name = "swiftstdlibtoolwrapper",
     srcs = ["swiftstdlibtoolwrapper.sh"],
-    data = ["//src/tools/xcode/realpath:realpath_genrule"],
+    data = [
+        "//src/tools/xcode/realpath",
+        "//src/tools/xcode/xcrunwrapper",
+    ],
 )
diff --git a/tools/objc/BUILD b/tools/objc/BUILD
index eca7bb4..b9eb66b 100644
--- a/tools/objc/BUILD
+++ b/tools/objc/BUILD
@@ -100,6 +100,11 @@
     srcs = [":xcrunwrapper.sh"],
 )
 
+sh_binary(
+    name = "environment_plist",
+    srcs = [":environment_plist.sh"],
+)
+
 filegroup(
     name = "gcov",
     srcs = [":gcov_stub"],