aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/objc/IosApplication.java
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2015-02-26 22:39:59 +0000
committerGravatar Han-Wen Nienhuys <hanwen@google.com>2015-03-04 15:36:40 +0000
commitf0733271e778b73030624aef6f1616a84e6b61e4 (patch)
tree8e8b3c1c0a9a06feb2b99dfa0eb15db4d1822612 /src/main/java/com/google/devtools/build/lib/rules/objc/IosApplication.java
parentf998e88b0ca1063f709757070aad881e3d74771d (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.java15
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);
+ }
+ }
}