diff options
author | 2015-03-17 19:19:25 +0000 | |
---|---|---|
committer | 2015-03-18 13:45:04 +0000 | |
commit | 6683d645ff3a1f3aedc4b7d559b9fbe4d7bcafc4 (patch) | |
tree | 2a8623d1b5967e4e32d68cff4bad0430ef2293e9 /src/main/java/com/google/devtools/build/lib/rules/objc/ResourceSupport.java | |
parent | 412ef48f76d74b475fae9b35fd77452039f74af7 (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.java | 32 |
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; } /** |