diff options
author | 2015-02-26 22:39:59 +0000 | |
---|---|---|
committer | 2015-03-04 15:36:40 +0000 | |
commit | f0733271e778b73030624aef6f1616a84e6b61e4 (patch) | |
tree | 8e8b3c1c0a9a06feb2b99dfa0eb15db4d1822612 /src/main/java/com/google/devtools/build/lib/rules/objc/IosApplication.java | |
parent | f998e88b0ca1063f709757070aad881e3d74771d (diff) |
RELNOTES: Invoking blaze run on an objc_binary target launches iossim with the resulting app.
This adds very basic run support for objc_binary targets. It simply launches them in iossim with the default device and SDK.
--
MOS_MIGRATED_REVID=87286604
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/objc/IosApplication.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/objc/IosApplication.java | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/IosApplication.java b/src/main/java/com/google/devtools/build/lib/rules/objc/IosApplication.java index d931daee4d..d35bfa0618 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/IosApplication.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/IosApplication.java @@ -15,8 +15,11 @@ package com.google.devtools.build.lib.rules.objc; import com.google.common.base.Optional; +import com.google.devtools.build.lib.actions.Artifact; import com.google.devtools.build.lib.analysis.RuleConfiguredTarget.Mode; +import com.google.devtools.build.lib.analysis.RuleConfiguredTargetBuilder; import com.google.devtools.build.lib.analysis.RuleContext; +import com.google.devtools.build.xcode.common.Platform; /** * Implementation for {@code ios_application}. @@ -37,4 +40,16 @@ public class IosApplication extends ReleaseBundlingTargetFactory { ruleContext.getPrerequisite("options", Mode.TARGET, OptionsProvider.class))) .build(); } + + @Override + protected void configureTarget(RuleConfiguredTargetBuilder target, RuleContext ruleContext, + ReleaseBundlingSupport releaseBundlingSupport) { + // If this is an application built for the simulator, make it runnable. + if (ObjcRuleClasses.objcConfiguration(ruleContext).getPlatform() == Platform.SIMULATOR) { + Artifact runnerScript = ObjcRuleClasses.intermediateArtifacts(ruleContext).runnerScript(); + Artifact ipaFile = ruleContext.getImplicitOutputArtifact(ReleaseBundlingSupport.IPA); + releaseBundlingSupport.registerGenerateRunnerScriptAction(runnerScript, ipaFile); + target.setRunfilesSupport(releaseBundlingSupport.runfilesSupport(runnerScript), runnerScript); + } + } } |