8000 Add visionOS support · coderabbit-test/bazel@c113e62 · GitHub
[go: up one dir, main page]

Skip to content

Commit c113e62

Browse files
keithcopybara-github
authored andcommitted
Add visionOS support
Closes bazelbuild#18905. PiperOrigin-RevId: 554827222 Change-Id: I22d1d9675d71def19f61ce1725affc60508c5a52
1 parent e943934 commit c113e62

31 files changed

+249
-19
lines changed

src/MODULE.tools

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ bazel_dep(name = "rules_license", version = "0.0.3")
66
bazel_dep(name = "rules_proto", version = "4.0.0")
77
bazel_dep(name = "rules_python", version = "0.4.0")
88

9-
bazel_dep(name = "platforms", version = "0.0.4")
9+
bazel_dep(name = "platforms", version = "0.0.7")
1010
bazel_dep(name = "protobuf", version = "3.19.6", repo_name = "com_google_protobuf")
1111
bazel_dep(name = "zlib", version = "1.2.13")
1212

src/main/java/com/google/devtools/build/docgen/templates/be/be-nav.vm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
#end
3434

3535
<li><a href="${bazelbuildGithub}/rules_appengine" target="_blank" rel="noopener">AppEngine</a></li>
36-
<li><a href="${bazelbuildGithub}/rules_apple" target="_blank" rel="noopener">Apple (Swift, iOS, macOS, tvOS, watchOS)</a></li>
36+
<li><a href="${bazelbuildGithub}/rules_apple" target="_blank" rel="noopener">Apple (Swift, iOS, macOS, tvOS, visionOS, watchOS)</a></li>
3737
<li><a href="${bazelbuildGithub}/rules_dotnet" target="_blank" rel="noopener">C#</a></li>
3838
<li><a href="${bazelbuildGithub}/rules_d" target="_blank" rel="noopener">D</a></li>
3939
<li><a href="${bazelbuildGithub}/rules_docker" target="_blank" rel="noopener">Docker</a></li>

src/main/java/com/google/devtools/build/docgen/templates/be/be-toc.vm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ toc:
2828
- title: AppEngine
2929
path: https://github.com/bazelbuild/rules_appengine
3030
status: external
31-
- title: Apple (Swift, iOS, macOS, tvOS, watchOS)
31+
- title: Apple (Swift, iOS, macOS, tvOS, visionOS, watchOS)
3232
path: https://github.com/bazelbuild/rules_apple
3333
status: external
3434
- title: C#

src/main/java/com/google/devtools/build/lib/bazel/repository/LocalConfigPlatformFunction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ private static String moduleFileContent(String repositoryName) {
162162
"module(name = \"%s\")",
163163
// Try to keep this updated with the src/MODULE.tools file. (Due to MVS, even if this is
164164
// not kept up to date, we'll use the latest version anyhow)
165-
"bazel_dep(name = \"platforms\", version = \"0.0.4\")"),
165+
"bazel_dep(name = \"platforms\", version = \"0.0.7\")"),
166166
repositoryName);
167167
}
168168

src/main/java/com/google/devtools/build/lib/rules/apple/AppleCommandLineOptions.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,10 @@ public class AppleCommandLineOptions extends FragmentOptions {
187187
@VisibleForTesting public static final String DEFAULT_TVOS_SDK_VERSION = "9.0";
188188
@VisibleForTesting static final String DEFAULT_IOS_CPU = "x86_64";
189189

190+
/** The default visionOS CPU value. */
191+
public static final String DEFAULT_VISIONOS_CPU =
192+
CPU.getCurrent() == CPU.AARCH64 ? "sim_arm64" : "x86_64";
193+
190194
/** The default watchos CPU value. */
191195
public static final String DEFAULT_WATCHOS_CPU =
192196
CPU.getCurrent() == CPU.AARCH64 ? "arm64" : "x86_64";
@@ -292,6 +296,16 @@ public class AppleCommandLineOptions extends FragmentOptions {
292296
+ "is a universal binary containing all specified architectures.")
293297
public List<String> iosMultiCpus;
294298

299+
@Option(
300+
name = "visionos_cpus",
301+
allowMultiple = true,
302+
converter = CommaSeparatedOptionListConverter.class,
303+
defaultValue = "null",
304+
documentationCategory = OptionDocumentationCategory.OUTPUT_PARAMETERS,
305+
effectTags = {OptionEffectTag.LOSES_INCREMENTAL_STATE, OptionEffectTag.LOADING_AND_ANALYSIS},
306+
help = "Comma-separated list of architectures for which to build Apple visionOS binaries.")
307+
public List<String> visionosCpus;
308+
295309
@Option(
296310
name = "watchos_cpus",
297311
allowMultiple = true,
@@ -399,6 +413,10 @@ public DottedVersion getMinimumOsVersion() {
399413
case TVOS:
400414
option = tvosMinimumOs;
401415
break;
416+
case VISIONOS:
417+
// TODO: Replace with CppOptions.minimumOsVersion
418+
option = DottedVersion.option(DottedVersion.fromStringUnchecked("1.0"));
419+
break;
402420
case WATCHOS:
403421
option = watchosMinimumOs;
404422
break;

src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,10 @@ public static AppleCpus create(AppleCommandLineOptions options, CoreOptions core
113113
(options.iosMultiCpus == null || options.iosMultiCpus.isEmpty())
114114
? ImmutableList.of(iosCpuFromCpu(coreOptions.cpu))
115115
: ImmutableList.copyOf(options.iosMultiCpus);
116+
ImmutableList<String> visionosCpus =
117+
(options.visionosCpus == null || options.visionosCpus.isEmpty())
118+
? ImmutableList.of(AppleCommandLineOptions.DEFAULT_VISIONOS_CPU)
119+
: ImmutableList.copyOf(options.visionosCpus);
116120
ImmutableList<String> watchosCpus =
117121
(options.watchosCpus == null || options.watchosCpus.isEmpty())
118122
? ImmutableList.of(AppleCommandLineOptions.DEFAULT_WATCHOS_CPU)
@@ -131,13 +135,21 @@ public static AppleCpus create(AppleCommandLineOptions options, CoreOptions core
131135
: ImmutableList.copyOf(options.catalystCpus);
132136

133137
return new AutoValue_AppleConfiguration_AppleCpus(
134-
appleSplitCpu, iosMultiCpus, watchosCpus, tvosCpus, macosCpus, catalystCpus);
138+
appleSplitCpu,
139+
iosMultiCpus,
140+
visionosCpus,
141+
watchosCpus,
142+
tvosCpus,
143+
macosCpus,
144+
catalystCpus);
135145
}
136146

137147
abstract String appleSplitCpu();
138148

139149
abstract ImmutableList<String> iosMultiCpus();
140150

151+
abstract ImmutableList<String> visionosCpus();
152+
141153
abstract ImmutableList<String> watchosCpus();
142154

143155
abstract ImmutableList<String> tvosCpus();
@@ -256,6 +268,8 @@ private static String getPrefixedAppleCpu(PlatformType applePlatformType, AppleC
256268
switch (applePlatformType) {
257269
case IOS:
258270
return appleCpus.iosMultiCpus().get(0);
271+
case VISIONOS:
272+
return appleCpus.visionosCpus().get(0);
259273
case WATCHOS:
260274
return appleCpus.watchosCpus().get(0);
261275
case TVOS:
@@ -304,6 +318,8 @@ public List<String> getMultiArchitectures(PlatformType platformType) {
304318
switch (platformType) {
305319
case IOS:
306320
return appleCpus.iosMultiCpus();
321+
case VISIONOS:
322+
return appleCpus.visionosCpus();
307323
case WATCHOS:
308324
return appleCpus.watchosCpus();
309325
case TVOS:
@@ -349,6 +365,14 @@ public ApplePlatform getMultiArchPlatform(PlatformType platformType) {
349365
}
350366
}
351367
return ApplePlatform.IOS_SIMULATOR;
368+
case VISIONOS:
369+
for (String arch : architectures) {
370+
if (ApplePlatform.forTarget(PlatformType.VISIONOS, arch)
371+
== ApplePlatform.VISIONOS_DEVICE) {
372+
return ApplePlatform.VISIONOS_DEVICE;
373+
}
374+
}
375+
return ApplePlatform.VISIONOS_SIMULATOR;
352376
case WATCHOS:
353377
for (String arch : architectures) {
354378
if (ApplePlatform.forTarget(PlatformType.WATCHOS, arch) == ApplePlatform.WATCHOS_DEVICE) {
@@ -453,6 +477,8 @@ public enum ConfigurationDistinguisher implements StarlarkValue {
453477
UNKNOWN("unknown"),
454478
/** Distinguisher for {@code apple_binary} rule with "ios" platform_type. */
455479
APPLEBIN_IOS("applebin_ios"),
480+
/** Distinguisher for {@code apple_binary} rule with "visionos" platform_type. */
481+
APPLEBIN_VISIONOS("applebin_visionos"),
456482
/** Distinguisher for {@code apple_binary} rule with "watchos" platform_type. */
457483
APPLEBIN_WATCHOS("applebin_watchos"),
458484
/** Distinguisher for {@code apple_binary} rule with "tvos" platform_type. */

src/main/java/com/google/devtools/build/lib/rules/apple/ApplePlatform.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ public enum ApplePlatform implements ApplePlatformApi {
3737
MACOS("macos", "MacOSX", PlatformType.MACOS, true),
3838
TVOS_DEVICE("tvos_device", "AppleTVOS", PlatformType.TVOS, true),
3939
TVOS_SIMULATOR("tvos_simulator", "AppleTVSimulator", PlatformType.TVOS, false),
40+
VISIONOS_DEVICE("visionos_device", "XROS", PlatformType.VISIONOS, true),
41+
VISIONOS_SIMULATOR("visionos_simulator", "XRSimulator", PlatformType.VISIONOS, false),
4042
WATCHOS_DEVICE("watchos_device", "WatchOS", PlatformType.WATCHOS, true),
4143
WATCHOS_SIMULATOR("watchos_simulator", "WatchSimulator", PlatformType.WATCHOS, false),
4244
CATALYST("catalyst", "MacOSX", PlatformType.CATALYST, true);
@@ -45,6 +47,10 @@ public enum ApplePlatform implements ApplePlatformApi {
4547
ImmutableSet.of("ios_x86_64", "ios_i386", "ios_sim_arm64");
4648
private static final ImmutableSet<String> IOS_DEVICE_TARGET_CPUS =
4749
ImmutableSet.of("ios_armv6", "ios_arm64", "ios_armv7", "ios_armv7s", "ios_arm64e");
50+
private static final ImmutableSet<String> VISIONOS_SIMULATOR_TARGET_CPUS =
51+
ImmutableSet.of("visionos_x86_64", "visionos_sim_arm64");
52+
private static final ImmutableSet<String> VISIONOS_DEVICE_TARGET_CPUS =
53+
ImmutableSet.of("visionos_arm64");
4854
private static final ImmutableSet<String> WATCHOS_SIMULATOR_TARGET_CPUS =
4955
ImmutableSet.of("watchos_i386", "watchos_x86_64", "watchos_arm64");
5056
private static final ImmutableSet<String> WATCHOS_DEVICE_TARGET_CPUS =
@@ -135,6 +141,10 @@ private static ApplePlatform forTargetCpuNullable(String targetCpu) {
135141
return IOS_SIMULATOR;
136142
} else if (IOS_DEVICE_TARGET_CPUS.contains(targetCpu)) {
137143
return IOS_DEVICE;
144+
} else if (VISIONOS_SIMULATOR_TARGET_CPUS.contains(targetCpu)) {
145+
return VISIONOS_SIMULATOR;
146+
} else if (VISIONOS_DEVICE_TARGET_CPUS.contains(targetCpu)) {
147+
return VISIONOS_DEVICE;
138148
} else if (WATCHOS_SIMULATOR_TARGET_CPUS.contains(targetCpu)) {
139149
return WATCHOS_SIMULATOR;
140150
} else if (WATCHOS_DEVICE_TARGET_CPUS.contains(targetCpu)) {
@@ -242,6 +252,7 @@ public UnsupportedPlatformTypeException(String msg) {
242252
@Immutable
243253
public enum PlatformType implements ApplePlatformTypeApi {
244254
IOS("ios"),
255+
VISIONOS("visionos"),
245256
WATCHOS("watchos"),
246257
TVOS("tvos"),
247258
MACOS("macos"),

src/main/java/com/google/devtools/build/lib/rules/apple/AppleToolchain.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,8 @@ public static String sdkFrameworkDir(ApplePlatform targetPlatform, XcodeConfigIn
114114
}
115115
break;
116116
case MACOS:
117+
case VISIONOS_DEVICE:
118+
case VISIONOS_SIMULATOR:
117119
case WATCHOS_DEVICE:
118120
case WATCHOS_SIMULATOR:
119121
case TVOS_DEVICE:

src/main/java/com/google/devtools/build/lib/rules/apple/XcodeConfig.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,9 @@ public ConfiguredTarget create(RuleContext ruleContext)
122122
(appleOptions.iosMinimumOs != null)
123123
? DottedVersion.maybeUnwrap(appleOptions.iosMinimumOs)
124124
: iosSdkVersion;
125+
DottedVersion visionosSdkVersion = xcodeVersionProperties.getDefaultVisionosSdkVersion();
126+
// TODO: Replace with CppOptions.minimumOsVersion
127+
DottedVersion visionosMinimumOsVersion = DottedVersion.fromStringUnchecked("1.0");
125128
DottedVersion watchosSdkVersion =
126129
(appleOptions.watchOsSdkVersion != null)
127130
? DottedVersion.maybeUnwrap(appleOptions.watchOsSdkVersion)
@@ -151,6 +154,8 @@ public ConfiguredTarget create(RuleContext ruleContext)
151154
new XcodeConfigInfo(
152155
iosSdkVersion,
153156
iosMinimumOsVersion,
157+
visionosSdkVersion,
158+
visionosMinimumOsVersion,
154159
watchosSdkVersion,
155160
watchosMinimumOsVersion,
156161
tvosSdkVersion,

src/main/java/com/google/devtools/build/lib/rules/apple/XcodeConfigInfo.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ public class XcodeConfigInfo extends NativeInfo
4545

4646
private final DottedVersion iosSdkVersion;
4747
private final DottedVersion iosMinimumOsVersion;
48+
private final DottedVersion visionosSdkVersion;
49+
private final DottedVersion visionosMinimumOsVersion;
4850
private final DottedVersion watchosSdkVersion;
4951
private final DottedVersion watchosMinimumOsVersion;
5052
private final DottedVersion tvosSdkVersion;
@@ -58,6 +60,8 @@ public class XcodeConfigInfo extends NativeInfo
5860
public XcodeConfigInfo(
5961
DottedVersion iosSdkVersion,
6062
DottedVersion iosMinimumOsVersion,
63+
DottedVersion visionosSdkVersion,
64+
DottedVersion visionosMinimumOsVersion,
6165
DottedVersion watchosSdkVersion,
6266
DottedVersion watchosMinimumOsVersion,
6367
DottedVersion tvosSdkVersion,
@@ -70,6 +74,8 @@ public XcodeConfigInfo(
7074
boolean includeXcodeReqs) {
7175
this.iosSdkVersion = Preconditions.checkNotNull(iosSdkVersion);
7276
this.iosMinimumOsVersion = Preconditions.checkNotNull(iosMinimumOsVersion);
77+
this.visionosSdkVersion = Preconditions.checkNotNull(visionosSdkVersion);
78+
this.visionosMinimumOsVersion = Preconditions.checkNotNull(visionosMinimumOsVersion);
7379
this.watchosSdkVersion = Preconditions.checkNotNull(watchosSdkVersion);
7480
this.watchosMinimumOsVersion = Preconditions.checkNotNull(watchosMinimumOsVersion);
7581
this.tvosSdkVersion = Preconditions.checkNotNull(tvosSdkVersion);
@@ -141,6 +147,8 @@ private XcodeConfigProvider() {
141147
public XcodeConfigInfoApi<?, ?> xcodeConfigInfo(
142148
String iosSdkVersion,
143149
String iosMinimumOsVersion,
150+
String visionosSdkVersion,
151+
String visionosMinimumOsVersion,
144152
String watchosSdkVersion,
145153
String watchosMinimumOsVersion,
146154
String tvosSdkVersion,
@@ -153,6 +161,8 @@ private XcodeConfigProvider() {
153161
return new XcodeConfigInfo(
154162
DottedVersion.fromString(iosSdkVersion),
155163
DottedVersion.fromString(iosMinimumOsVersion),
164+
DottedVersion.fromString(visionosSdkVersion),
165+
DottedVersion.fromString(visionosMinimumOsVersion),
156166
DottedVersion.fromString(watchosSdkVersion),
157167
DottedVersion.fromString(watchosMinimumOsVersion),
158168
DottedVersion.fromString(tvosSdkVersion),
@@ -199,6 +209,9 @@ public DottedVersion getMinimumOsForPlatformType(ApplePlatform.PlatformType plat
199209
return iosMinimumOsVersion;
200210
case TVOS:
201211
return tvosMinimumOsVersion;
212+
case VISIONOS:
213+
// TODO: Replace with CppOptions.minimumOsVersion
214+
return DottedVersion.fromStringUnchecked("1.0");
202215
case WATCHOS:
203216
return watchosMinimumOsVersion;
204217
case MACOS:
@@ -220,6 +233,9 @@ public DottedVersion getSdkVersionForPlatform(ApplePlatform platform) {
220233
case TVOS_DEVICE:
221234
case TVOS_SIMULATOR:
222235
return tvosSdkVersion;
236+
case VISIONOS_DEVICE:
237+
case VISIONOS_SIMULATOR:
238+
return visionosSdkVersion;
223239
case WATCHOS_DEVICE:
224240
case WATCHOS_SIMULATOR:
225241
return watchosSdkVersion;
@@ -283,6 +299,13 @@ public DottedVersion getTvosSdkVersionForStarlark(StarlarkThread thread) throws
283299
return tvosSdkVersion;
284300
}
285301

302+
@StarlarkMethod(name = "visionos_sdk_version", documented = false, useStarlarkThread = true)
303+
public DottedVersion getVisionosSdkVersionForStarlark(StarlarkThread thread)
304+
throws EvalException {
305+
checkAccess(thread);
306+
return visionosSdkVersion;
307+
}
308+
286309
@StarlarkMethod(name = "watchos_sdk_version", documented = false, useStarlarkThread = true)
287310
public DottedVersion getWatchosSdkVersionForStarlark(StarlarkThread thread) throws EvalException {
288311
checkAccess(thread);

src/main/java/com/google/devtools/build/lib/rules/apple/XcodeVersionProperties.java

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,14 @@ public class XcodeVersionProperties extends NativeInfo implements XcodePropertie
3636
new BuiltinProvider<XcodeVersionProperties>(STARLARK_NAME, XcodeVersionProperties.class) {};
3737

3838
@VisibleForTesting public static final String DEFAULT_IOS_SDK_VERSION = "8.4";
39+
@VisibleForTesting public static final String DEFAULT_VISIONOS_SDK_VERSION = "1.0";
3940
@VisibleForTesting public static final String DEFAULT_WATCHOS_SDK_VERSION = "2.0";
4041
@VisibleForTesting public static final String DEFAULT_MACOS_SDK_VERSION = "10.11";
4142
@VisibleForTesting public static final String DEFAULT_TVOS_SDK_VERSION = "9.0";
4243

4344
private final Optional<DottedVersion> xcodeVersion;
4445
private final DottedVersion defaultIosSdkVersion;
46+
private final DottedVersion defaultVisionosSdkVersion;
4547
private final DottedVersion defaultWatchosSdkVersion;
4648
private final DottedVersion defaultTvosSdkVersion;
4749
private final DottedVersion defaultMacosSdkVersion;
@@ -63,7 +65,7 @@ public static XcodeVersionProperties unknownXcodeVersionProperties() {
6365
* specified.
6466
*/
6567
XcodeVersionProperties(DottedVersion xcodeVersion) {
66-
this(xcodeVersion, null, null, null, null);
68+
this(xcodeVersion, null, null, null, null, null);
6769
}
6870

6971
/**
@@ -73,6 +75,7 @@ public static XcodeVersionProperties unknownXcodeVersionProperties() {
7375
XcodeVersionProperties(
7476
DottedVersion xcodeVersion,
7577
@Nullable String defaultIosSdkVersion,
78+
@Nullable String defaultVisionosSdkVersion,
7679
@Nullable String defaultWatchosSdkVersion,
7780
@Nullable String defaultTvosSdkVersion,
7881
@Nullable String defaultMacosSdkVersion) {
@@ -81,6 +84,10 @@ public static XcodeVersionProperties unknownXcodeVersionProperties() {
8184
Strings.isNullOrEmpty(defaultIosSdkVersion)
8285
? DottedVersion.fromStringUnchecked(DEFAULT_IOS_SDK_VERSION)
8386
: DottedVersion.fromStringUnchecked(defaultIosSdkVersion);
87+
this.defaultVisionosSdkVersion =
88+
Strings.isNullOrEmpty(defaultVisionosSdkVersion)
89+
? DottedVersion.fromStringUnchecked(DEFAULT_VISIONOS_SDK_VERSION)
90+
: DottedVersion.fromStringUnchecked(defaultVisionosSdkVersion);
8491
this.defaultWatchosSdkVersion =
8592
Strings.isNullOrEmpty(defaultWatchosSdkVersion)
8693
? DottedVersion.fromStringUnchecked(DEFAULT_WATCHOS_SDK_VERSION)
@@ -117,6 +124,13 @@ public String getDefaultIosSdkVersionString() {
117124
return defaultIosSdkVersion != null ? defaultIosSdkVersion.toString() : null;
118125
}
119126

127+
/** Returns the default visionOS sdk version to use if this xcode version is in use. */
128+
@Nullable
129+
@Override
130+
public String getDefaultVisionosSdkVersionString() {
131+
return defaultVisionosSdkVersion != null ? defaultVisionosSdkVersion.toString() : null;
132+
}
133+
120134
/** Returns the default watchos sdk version to use if this xcode version is in use. */
121135
@Nullable
122136
@Override
@@ -148,6 +162,11 @@ public DottedVersion getDefaultIosSdkVersion() {
148162
return defaultIosSdkVersion;
149163
}
150164

165+
@Nullable
166+
public DottedVersion getDefaultVisionosSdkVersion() {
167+
return defaultVisionosSdkVersion;
168+
}
169+
151170
@Nullable
152171
public DottedVersion getDefaultWatchosSdkVersion() {
153172
return defaultWatchosSdkVersion;
@@ -174,6 +193,7 @@ public boolean equals(Object other) {
174193
XcodeVersionProperties otherData = (XcodeVersionProperties) other;
175194
return xcodeVersion.equals(otherData.getXcodeVersion())
176195
&& defaultIosSdkVersion.equals(otherData.getDefaultIosSdkVersion())
196+
&& defaultVisionosSdkVersion.equals(otherData.getDefaultVisionosSdkVersion())
177197
&& defaultWatchosSdkVersion.equals(otherData.getDefaultWatchosSdkVersion())
178198
&& defaultTvosSdkVersion.equals(otherData.getDefaultTvosSdkVersion())
179199
&& defaultMacosSdkVersion.equals(otherData.getDefaultMacosSdkVersion());
@@ -184,6 +204,7 @@ public int hashCode() {
184204
return Objects.hash(
185205
xcodeVersion,
186206
defaultIosSdkVersion,
207+
defaultVisionosSdkVersion,
187208
defaultWatchosSdkVersion,
188209
defaultTvosSdkVersion,
189210
defaultMacosSdkVersion);

0 commit comments

Comments
 (0)
0