diff options
author | 2016-06-15 19:32:34 +0000 | |
---|---|---|
committer | 2016-06-16 09:01:54 +0000 | |
commit | f6a45fda097fcdae4704915c530403a90e9d6745 (patch) | |
tree | 54e74a970f2245fdc4517e5a2cc0cb2f9ee43c0e /src/main/java/com/google/devtools/build/lib/rules/objc/AppleBinaryRule.java | |
parent | 19f2238b608d7ebba182a2bdd405e4696975f733 (diff) |
Support for platform_type="watchos" on apple_binary.
This builds all dependencies linked against watch SDKs instead of iOS SDKs, and builds for the architectures specified in --watchos_multi_cpus
RELNOTES: apple_binary supports a new platform_type attribute, which, if set to "watchos", will build dependencies for Apple's watchOS2.
--
MOS_MIGRATED_REVID=124980029
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/objc/AppleBinaryRule.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/objc/AppleBinaryRule.java | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleBinaryRule.java b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleBinaryRule.java index 33920dec84..e69834d2f3 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleBinaryRule.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleBinaryRule.java @@ -18,6 +18,7 @@ import static com.google.devtools.build.lib.packages.Attribute.attr; import static com.google.devtools.build.lib.packages.BuildType.LABEL; import static com.google.devtools.build.lib.packages.ImplicitOutputsFunction.fromTemplates; import static com.google.devtools.build.lib.syntax.Type.BOOLEAN; +import static com.google.devtools.build.lib.syntax.Type.STRING; import com.google.devtools.build.lib.analysis.BaseRuleClasses; import com.google.devtools.build.lib.analysis.RuleDefinition; @@ -27,6 +28,7 @@ import com.google.devtools.build.lib.packages.ImplicitOutputsFunction.SafeImplic import com.google.devtools.build.lib.packages.RuleClass; import com.google.devtools.build.lib.packages.RuleClass.Builder; import com.google.devtools.build.lib.rules.apple.AppleConfiguration; +import com.google.devtools.build.lib.rules.apple.Platform.PlatformType; /** * Rule definition for apple_binary. @@ -34,6 +36,12 @@ import com.google.devtools.build.lib.rules.apple.AppleConfiguration; public class AppleBinaryRule implements RuleDefinition { /** + * Attribute name for {@code apple_binary}'s apple platform type (for which all dependencies and + * sources of an {@code apple_binary} target will be built). + */ + static final String PLATFORM_TYPE_ATTR_NAME = "platform_type"; + + /** * Template for the fat binary output (using Apple's "lipo" tool to combine binaries of * multiple architectures). */ @@ -60,6 +68,24 @@ public class AppleBinaryRule implements RuleDefinition { .add(attr(":cc_toolchain", LABEL) .cfg(AppleBinary.SPLIT_TRANSITION_PROVIDER) .value(ObjcRuleClasses.APPLE_TOOLCHAIN)) + /* <!-- #BLAZE_RULE(apple_binary).ATTRIBUTE(platform_type) --> + The type of platform for which to create multi-architecture "fat" binaries in this rule. + For example, if <code>ios</code> is selected, then fat binaries will be created + combining all architectures specified in <code>--ios_multi_cpus</code>. + + Options are: + <ul> + <li> + <code>ios</code> (default): architectures gathered from <code>--ios_multi_cpus</code>. + </li> + <li> + <code>watchos</code>: architectures gathered from <code>--watchos_multi_cpus</code> + </li> + </ul> + <!-- #END_BLAZE_RULE.ATTRIBUTE -->*/ + .add(attr(PLATFORM_TYPE_ATTR_NAME, STRING) + .value(PlatformType.IOS.toString()) + .nonconfigurable("Determines the configuration transition on deps")) /*<!-- #BLAZE_RULE(apple_binary).IMPLICIT_OUTPUTS --> <ul> <li><code><var>name</var>_lipobin</code>: the 'lipo'ed potentially multi-architecture |