aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcRuleClasses.java
diff options
context:
space:
mode:
authorGravatar Peter Schmitt <schmitt@google.com>2015-05-12 22:58:08 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2015-05-15 09:43:13 +0000
commitea047be3dbd00206e3547bf04f14027aa5c1630f (patch)
tree0f766bb6fcf3ff5dea9849af8183f799a0f62857 /src/main/java/com/google/devtools/build/lib/rules/objc/ObjcRuleClasses.java
parent4eda0cf57fb18538211e0f74d3de5a3affb672c5 (diff)
Clean up obcj rules by removing ObjcActionsBuilder.
Moved the last remaining logic to its corresponding support class (XcodeSupport). -- MOS_MIGRATED_REVID=93462899
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/objc/ObjcRuleClasses.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ObjcRuleClasses.java51
1 files changed, 25 insertions, 26 deletions
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 9aeb7acd27..df14de212e 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
@@ -24,16 +24,16 @@ import static com.google.devtools.build.lib.packages.Type.STRING_LIST;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Optional;
-import com.google.common.base.Preconditions;
import com.google.common.base.Predicate;
import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import com.google.devtools.build.lib.actions.Artifact;
-import com.google.devtools.build.lib.analysis.FilesToRunProvider;
import com.google.devtools.build.lib.analysis.RuleConfiguredTarget.Mode;
import com.google.devtools.build.lib.analysis.RuleContext;
import com.google.devtools.build.lib.analysis.RuleDefinition;
import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;
+import com.google.devtools.build.lib.analysis.actions.SpawnAction;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
import com.google.devtools.build.lib.packages.Attribute;
@@ -62,6 +62,8 @@ public class ObjcRuleClasses {
static final PathFragment LIBTOOL = new PathFragment(BIN_DIR + "/libtool");
static final PathFragment DSYMUTIL = new PathFragment(BIN_DIR + "/dsymutil");
static final PathFragment LIPO = new PathFragment(BIN_DIR + "/lipo");
+ static final PathFragment IBTOOL = new PathFragment(IosSdkCommands.IBTOOL_PATH);
+ private static final PathFragment JAVA = new PathFragment("/usr/bin/java");
private ObjcRuleClasses() {
throw new UnsupportedOperationException("static-only");
@@ -205,14 +207,6 @@ public class ObjcRuleClasses {
context, context.getLabel().toPathFragment(), suffix);
}
- static ObjcActionsBuilder actionsBuilder(RuleContext ruleContext) {
- return new ObjcActionsBuilder(
- ruleContext,
- intermediateArtifacts(ruleContext),
- ObjcRuleClasses.objcConfiguration(ruleContext),
- ruleContext);
- }
-
public static ObjcConfiguration objcConfiguration(RuleContext ruleContext) {
return ruleContext.getFragment(ObjcConfiguration.class);
}
@@ -222,6 +216,27 @@ public class ObjcRuleClasses {
new SdkFramework("Foundation"), new SdkFramework("UIKit"));
/**
+ * Creates a new spawn action builder that requires a darwin architecture to run.
+ */
+ static SpawnAction.Builder spawnOnDarwinActionBuilder() {
+ return new SpawnAction.Builder()
+ .setExecutionInfo(ImmutableMap.of(ExecutionRequirements.REQUIRES_DARWIN, ""));
+ }
+
+ /**
+ * Creates a new spawn action builder that requires a darwin architecture to run and is executed
+ * with the given jar.
+ */
+ // TODO(bazel-team): Reference a rule target rather than a jar file when Darwin runfiles work
+ // better.
+ static SpawnAction.Builder spawnJavaOnDarwinActionBuilder(Artifact deployJarArtifact) {
+ return spawnOnDarwinActionBuilder()
+ .setExecutable(JAVA)
+ .addExecutableArguments("-jar", deployJarArtifact.getExecPathString())
+ .addInput(deployJarArtifact);
+ }
+
+ /**
* Attributes for {@code objc_*} rules that have compiler options.
*/
public static class CoptsRule implements RuleDefinition {
@@ -994,21 +1009,5 @@ public class ObjcRuleClasses {
.build();
}
}
-
- /**
- * Object that supplies tools used by all rules which have the helper tools common to most rule
- * implementations.
- */
- static final class Tools {
- private final RuleContext ruleContext;
-
- Tools(RuleContext ruleContext) {
- this.ruleContext = Preconditions.checkNotNull(ruleContext);
- }
-
- FilesToRunProvider xcodegen() {
- return ruleContext.getExecutablePrerequisite("$xcodegen", Mode.HOST);
- }
- }
}