diff options
author | 2015-05-12 22:58:08 +0000 | |
---|---|---|
committer | 2015-05-15 09:43:13 +0000 | |
commit | ea047be3dbd00206e3547bf04f14027aa5c1630f (patch) | |
tree | 0f766bb6fcf3ff5dea9849af8183f799a0f62857 /src/main/java/com/google/devtools/build/lib/rules/objc/ObjcRuleClasses.java | |
parent | 4eda0cf57fb18538211e0f74d3de5a3affb672c5 (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.java | 51 |
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); - } - } } |