aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/objc/ResourceSupport.java
diff options
context:
space:
mode:
authorGravatar Daniel Wagner-Hall <danielwh@google.com>2015-03-17 19:19:25 +0000
committerGravatar Kristina Chodorow <kchodorow@google.com>2015-03-18 13:45:04 +0000
commit6683d645ff3a1f3aedc4b7d559b9fbe4d7bcafc4 (patch)
tree2a8623d1b5967e4e32d68cff4bad0430ef2293e9 /src/main/java/com/google/devtools/build/lib/rules/objc/ResourceSupport.java
parent412ef48f76d74b475fae9b35fd77452039f74af7 (diff)
Split actoolzip and ibtoolzip into separate binaries
Have actoolzip abs-ify the partial info plist path because otherwise it picks seemingly random directories to which to output the info plist files. -- MOS_MIGRATED_REVID=88851706
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/objc/ResourceSupport.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ResourceSupport.java32
1 files changed, 29 insertions, 3 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ResourceSupport.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ResourceSupport.java
index d1a717c165..4a279d2a72 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ResourceSupport.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ResourceSupport.java
@@ -18,6 +18,7 @@ import com.google.common.collect.ImmutableList;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.analysis.RuleConfiguredTarget.Mode;
import com.google.devtools.build.lib.analysis.RuleContext;
+import com.google.devtools.build.lib.analysis.actions.CustomCommandLine;
/**
* Support for resource processing on Objc rules.
@@ -57,11 +58,36 @@ final class ResourceSupport {
CompiledResourceFile.fromStringsFiles(intermediateArtifacts, attributes.strings())),
new XibFiles(attributes.xibs()),
datamodels);
+
+ registerInterfaceBuilderActions(storyboards, tools);
+ return this;
+ }
+
+ private void registerInterfaceBuilderActions(
+ Storyboards storyboards, ObjcRuleClasses.Tools tools) {
for (Artifact storyboardInput : storyboards.getInputs()) {
- actionsBuilder.registerIbtoolzipAction(
- tools, storyboardInput, intermediateArtifacts.compiledStoryboardZip(storyboardInput));
+ String archiveRoot = BundleableFile.flatBundlePath(storyboardInput.getExecPath()) + "c";
+ Artifact zipOutput = intermediateArtifacts.compiledStoryboardZip(storyboardInput);
+
+ String minimumOs =
+ ruleContext.getConfiguration().getFragment(ObjcConfiguration.class).getMinimumOs();
+ ruleContext.registerAction(
+ ObjcActionsBuilder.spawnJavaOnDarwinActionBuilder(tools.ibtoolzipDeployJar())
+ .setMnemonic("StoryboardCompile")
+ .setCommandLine(new CustomCommandLine.Builder()
+ // The next three arguments are positional,
+ // i.e. they don't have flags before them.
+ .addPath(zipOutput.getExecPath())
+ .add(archiveRoot)
+ .addPath(ObjcActionsBuilder.IBTOOL)
+
+ .add("--minimum-deployment-target").add(minimumOs)
+ .addPath(storyboardInput.getExecPath())
+ .build())
+ .addOutput(zipOutput)
+ .addInput(storyboardInput)
+ .build(ruleContext));
}
- return this;
}
/**