aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/objc/MultiArchSplitTransitionProvider.java
diff options
context:
space:
mode:
authorGravatar Cal Peyser <cpeyser@google.com>2017-03-08 19:01:37 +0000
committerGravatar Vladimir Moskva <vladmos@google.com>2017-03-09 10:28:37 +0000
commit9da77a1b8597feff9b68b88c6e440798f73fa781 (patch)
tree03ed856a44b1def1d2ca58b9f8ab4e470e04187b /src/main/java/com/google/devtools/build/lib/rules/objc/MultiArchSplitTransitionProvider.java
parent4875b25b03140e08d9cd67beda1d215a41e65f8c (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.java18
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);
}