diff options
author | 2017-03-08 19:01:37 +0000 | |
---|---|---|
committer | 2017-03-09 10:28:37 +0000 | |
commit | 9da77a1b8597feff9b68b88c6e440798f73fa781 (patch) | |
tree | 03ed856a44b1def1d2ca58b9f8ab4e470e04187b /src/main/java/com/google/devtools/build/lib/rules/objc/MultiArchSplitTransitionProvider.java | |
parent | 4875b25b03140e08d9cd67beda1d215a41e65f8c (diff) |
Add support for 'macos' platform_type in apple binary. This type is only supported for crosstool builds - there is no support in LegacyCompilationSupport.
--
PiperOrigin-RevId: 149558653
MOS_MIGRATED_REVID=149558653
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/objc/MultiArchSplitTransitionProvider.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/objc/MultiArchSplitTransitionProvider.java | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/MultiArchSplitTransitionProvider.java b/src/main/java/com/google/devtools/build/lib/rules/objc/MultiArchSplitTransitionProvider.java index 80bb34164a..8e26a2e34a 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/MultiArchSplitTransitionProvider.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/MultiArchSplitTransitionProvider.java @@ -29,6 +29,7 @@ import com.google.devtools.build.lib.packages.Rule; import com.google.devtools.build.lib.packages.RuleClass.ConfiguredTargetFactory.RuleErrorException; import com.google.devtools.build.lib.rules.apple.AppleCommandLineOptions; import com.google.devtools.build.lib.rules.apple.AppleConfiguration.ConfigurationDistinguisher; +import com.google.devtools.build.lib.rules.apple.Platform; import com.google.devtools.build.lib.rules.apple.Platform.PlatformType; import com.google.devtools.build.lib.rules.objc.ObjcRuleClasses.MultiArchPlatformRule; import java.util.List; @@ -44,7 +45,8 @@ public class MultiArchSplitTransitionProvider implements SplitTransitionProvider "Unsupported platform type \"%s\""; private static final ImmutableSet<PlatformType> SUPPORTED_PLATFORM_TYPES = - ImmutableSet.of(PlatformType.IOS, PlatformType.WATCHOS, PlatformType.TVOS); + ImmutableSet.of( + PlatformType.IOS, PlatformType.WATCHOS, PlatformType.TVOS, PlatformType.MACOS); /** * Returns the apple platform type in the current rule context. @@ -80,11 +82,12 @@ public class MultiArchSplitTransitionProvider implements SplitTransitionProvider } } - private static final ImmutableMap<PlatformType, AppleBinaryTransition> - SPLIT_TRANSITIONS_BY_TYPE = ImmutableMap.<PlatformType, AppleBinaryTransition>builder() + private static final ImmutableMap<PlatformType, AppleBinaryTransition> SPLIT_TRANSITIONS_BY_TYPE = + ImmutableMap.<PlatformType, AppleBinaryTransition>builder() .put(PlatformType.IOS, new AppleBinaryTransition(PlatformType.IOS)) .put(PlatformType.WATCHOS, new AppleBinaryTransition(PlatformType.WATCHOS)) .put(PlatformType.TVOS, new AppleBinaryTransition(PlatformType.TVOS)) + .put(PlatformType.MACOS, new AppleBinaryTransition(PlatformType.MACOS)) .build(); @Override @@ -149,6 +152,13 @@ public class MultiArchSplitTransitionProvider implements SplitTransitionProvider } configurationDistinguisher = ConfigurationDistinguisher.APPLEBIN_TVOS; break; + case MACOS: + cpus = buildOptions.get(AppleCommandLineOptions.class).macosCpus; + if (cpus.isEmpty()) { + cpus = ImmutableList.of(AppleCommandLineOptions.DEFAULT_MACOS_CPU); + } + configurationDistinguisher = ConfigurationDistinguisher.APPLEBIN_MACOS; + break; default: throw new IllegalArgumentException("Unsupported platform type " + platformType); } @@ -169,7 +179,7 @@ public class MultiArchSplitTransitionProvider implements SplitTransitionProvider // This helps users of the iOS rules who do not depend on CC rules as these CPU values // require additional flags to work (e.g. a custom crosstool) which now only need to be // set if this feature is explicitly requested. - String platformCpu = String.format("%s_%s", platformType, cpu); + String platformCpu = Platform.cpuStringForTarget(platformType, cpu); AppleCrosstoolTransition.setAppleCrosstoolTransitionConfiguration(buildOptions, splitOptions, platformCpu); } |