@@ -62,13 +62,22 @@ const XCODE_SDK_NAMES = {
6262 "x86_64-apple-darwin" : "macosx" ,
6363 "arm64-apple-darwin" : "macosx" ,
6464 "arm64;x86_64-apple-darwin" : "macosx" ,
65+
6566 "arm64-apple-ios" : "iphoneos" ,
6667 "arm64-apple-ios-sim" : "iphonesimulator" ,
67- "arm64-apple-tvos" : "appletvos" ,
68+ "x86_64-apple-ios-sim" : "iphonesimulator" ,
69+ "arm64;x86_64-apple-ios-sim" : "iphonesimulator" ,
70+
6871 // "x86_64-apple-tvos": "appletvos",
72+ "arm64-apple-tvos" : "appletvos" ,
73+ "x86_64-apple-tvos-sim" : "appletvsimulator" ,
6974 "arm64-apple-tvos-sim" : "appletvsimulator" ,
75+ "arm64;x86_64-apple-tvos-sim" : "appletvsimulator" ,
76+
7077 "arm64-apple-visionos" : "xros" ,
7178 "arm64-apple-visionos-sim" : "xrsimulator" ,
79+ "x86_64-apple-visionos-sim" : "xrsimulator" ,
80+ "arm64;x86_64-apple-visionos-sim" : "xrsimulator" ,
7281} satisfies Record < Triplet , XcodeSDKName > ;
7382
7483type CMakeSystemName = "Darwin" | "iOS" | "tvOS" | "watchOS" | "visionOS" ;
@@ -77,27 +86,44 @@ const CMAKE_SYSTEM_NAMES = {
7786 "x86_64-apple-darwin" : "Darwin" ,
7887 "arm64-apple-darwin" : "Darwin" ,
7988 "arm64;x86_64-apple-darwin" : "Darwin" ,
89+
8090 "arm64-apple-ios" : "iOS" ,
8191 "arm64-apple-ios-sim" : "iOS" ,
82- "arm64-apple-tvos" : "tvOS" ,
92+ "x86_64-apple-ios-sim" : "iOS" ,
93+ "arm64;x86_64-apple-ios-sim" : "iOS" ,
94+
8395 // "x86_64-apple-tvos": "appletvos",
96+ "arm64-apple-tvos" : "tvOS" ,
8497 "arm64-apple-tvos-sim" : "tvOS" ,
98+ "x86_64-apple-tvos-sim" : "tvOS" ,
99+ "arm64;x86_64-apple-tvos-sim" : "tvOS" ,
100+
85101 "arm64-apple-visionos" : "visionOS" ,
102+ "x86_64-apple-visionos-sim" : "visionOS" ,
86103 "arm64-apple-visionos-sim" : "visionOS" ,
104+ "arm64;x86_64-apple-visionos-sim" : "visionOS" ,
87105} satisfies Record < Triplet , CMakeSystemName > ;
88106
89107const DESTINATION_BY_TRIPLET = {
108+ "x86_64-apple-darwin" : "generic/platform=macOS" ,
109+ "arm64-apple-darwin" : "generic/platform=macOS" ,
110+ "arm64;x86_64-apple-darwin" : "generic/platform=macOS" ,
111+
90112 "arm64-apple-ios" : "generic/platform=iOS" ,
91113 "arm64-apple-ios-sim" : "generic/platform=iOS Simulator" ,
114+ "x86_64-apple-ios-sim" : "generic/platform=iOS Simulator" ,
115+ "arm64;x86_64-apple-ios-sim" : "generic/platform=iOS Simulator" ,
116+
92117 "arm64-apple-tvos" : "generic/platform=tvOS" ,
93118 // "x86_64-apple-tvos": "generic/platform=tvOS",
119+ "x86_64-apple-tvos-sim" : "generic/platform=tvOS Simulator" ,
94120 "arm64-apple-tvos-sim" : "generic/platform=tvOS Simulator" ,
121+ "arm64;x86_64-apple-tvos-sim" : "generic/platform=tvOS Simulator" ,
122+
95123 "arm64-apple-visionos" : "generic/platform=visionOS" ,
96124 "arm64-apple-visionos-sim" : "generic/platform=visionOS Simulator" ,
97- // TODO: Verify that the three following destinations are correct and actually work
98- "x86_64-apple-darwin" : "generic/platform=macOS,arch=x86_64" ,
99- "arm64-apple-darwin" : "generic/platform=macOS,arch=arm64" ,
100- "arm64;x86_64-apple-darwin" : "generic/platform=macOS" ,
125+ "x86_64-apple-visionos-sim" : "generic/platform=visionOS Simulator" ,
126+ "arm64;x86_64-apple-visionos-sim" : "generic/platform=visionOS Simulator" ,
101127} satisfies Record < Triplet , string > ;
102128
103129type AppleArchitecture = "arm64" | "x86_64" | "arm64;x86_64" ;
@@ -106,30 +132,24 @@ export const APPLE_ARCHITECTURES = {
106132 "x86_64-apple-darwin" : "x86_64" ,
107133 "arm64-apple-darwin" : "arm64" ,
108134 "arm64;x86_64-apple-darwin" : "arm64;x86_64" ,
135+
109136 "arm64-apple-ios" : "arm64" ,
110137 "arm64-apple-ios-sim" : "arm64" ,
111- "arm64-apple-tvos" : "arm64" ,
138+ "x86_64-apple-ios-sim" : "x86_64" ,
139+ "arm64;x86_64-apple-ios-sim" : "arm64;x86_64" ,
140+
112141 // "x86_64-apple-tvos": "x86_64",
142+ "arm64-apple-tvos" : "arm64" ,
113143 "arm64-apple-tvos-sim" : "arm64" ,
144+ "x86_64-apple-tvos-sim" : "x86_64" ,
145+ "arm64;x86_64-apple-tvos-sim" : "arm64;x86_64" ,
146+
114147 "arm64-apple-visionos" : "arm64" ,
148+ "x86_64-apple-visionos-sim" : "x86_64" ,
115149 "arm64-apple-visionos-sim" : "arm64" ,
150+ "arm64;x86_64-apple-visionos-sim" : "arm64;x86_64" ,
116151} satisfies Record < Triplet , AppleArchitecture > ;
117152
118- export function createPlistContent ( values : Record < string , string > ) {
119- return [
120- '<?xml version="1.0" encoding="UTF-8"?>' ,
121- '<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">' ,
122- '<plist version="1.0">' ,
123- "<dict>" ,
124- ...Object . entries ( values ) . flatMap ( ( [ key , value ] ) => [
125- `<key>${ key } </key>` ,
126- `<string>${ value } </string>` ,
127- ] ) ,
128- "</dict>" ,
129- "</plist>" ,
130- ] . join ( "\n" ) ;
131- }
132-
133153const xcframeworkExtensionOption = new Option (
134154 "--xcframework-extension" ,
135155 "Don't rename the xcframework to .apple.node" ,
@@ -171,16 +191,46 @@ export const platform: Platform<Triplet[], AppleOpts> = {
171191 id : "apple" ,
172192 name : "Apple" ,
173193 triplets : [
194+ "arm64-apple-darwin" ,
195+ "x86_64-apple-darwin" ,
174196 "arm64;x86_64-apple-darwin" ,
197+
175198 "arm64-apple-ios" ,
176199 "arm64-apple-ios-sim" ,
200+ "x86_64-apple-ios-sim" ,
201+ "arm64;x86_64-apple-ios-sim" ,
202+
177203 "arm64-apple-tvos" ,
204+ "x86_64-apple-tvos-sim" ,
178205 "arm64-apple-tvos-sim" ,
206+ "arm64;x86_64-apple-tvos-sim" ,
207+
179208 "arm64-apple-visionos" ,
209+ "x86_64-apple-visionos-sim" ,
180210 "arm64-apple-visionos-sim" ,
211+ "arm64;x86_64-apple-visionos-sim" ,
181212 ] ,
182- defaultTriplets ( ) {
183- return process . arch === "arm64" ? [ "arm64-apple-ios-sim" ] : [ ] ;
213+ defaultTriplets ( mode ) {
214+ if ( mode === "all" ) {
215+ return [
216+ "arm64;x86_64-apple-darwin" ,
217+
218+ "arm64-apple-ios" ,
219+ "arm64;x86_64-apple-ios-sim" ,
220+
221+ "arm64-apple-tvos" ,
222+ "arm64;x86_64-apple-tvos-sim" ,
223+
224+ "arm64-apple-visionos" ,
225+ "arm64;x86_64-apple-visionos-sim" ,
226+ ] ;
227+ } else if ( mode === "current-development" ) {
228+ // We're applying a heuristic to determine the current simulators
229+ // TODO: Run a command to probe the currently running simulators instead
230+ return [ "arm64;x86_64-apple-ios-sim" ] ;
231+ } else {
232+ throw new Error ( `Unexpected mode: ${ mode as string } ` ) ;
233+ }
184234 } ,
185235 amendCommand ( command ) {
186236 return command . addOption ( xcframeworkExtensionOption ) ;
0 commit comments