@@ -123,33 +123,40 @@ command = "xcodebuild"
123123args = [
124124 " -create-xcframework" ,
125125 " -output" , " ${CARGO_TARGET_DIR}/swift/liveview_native_core.xcframework" ,
126- # macOS
126+ # macOS
127127 " -library" , " ${CARGO_TARGET_DIR}/universal/macos/libliveview_native_core.a" ,
128128 " -headers" , " ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/crates/core/c_src/include" ,
129- # iOS
129+ # iOS
130130 " -library" , " ${CARGO_TARGET_DIR}/aarch64-apple-ios/${CARGO_BUILD_TYPE}/libliveview_native_core.a" ,
131131 " -headers" , " ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/crates/core/c_src/include" ,
132- # iOS sim
132+ # iOS sim
133133 " -library" , " ${CARGO_TARGET_DIR}/universal/ios-sim/libliveview_native_core.a" ,
134134 " -headers" , " ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/crates/core/c_src/include" ,
135- # watchOS
135+ # watchOS
136136 " -library" , " ${CARGO_TARGET_DIR}/universal/watchos/libliveview_native_core.a" ,
137137 " -headers" , " ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/crates/core/c_src/include" ,
138- # watchOS sim
138+ # watchOS sim
139139 " -library" , " ${CARGO_TARGET_DIR}/universal/watchos-sim/libliveview_native_core.a" ,
140140 " -headers" , " ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/crates/core/c_src/include" ,
141- # tvOS
141+ # tvOS
142142 " -library" , " ${CARGO_TARGET_DIR}/aarch64-apple-tvos/${CARGO_BUILD_TYPE}/libliveview_native_core.a" ,
143143 " -headers" , " ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/crates/core/c_src/include" ,
144144 # tvOS sim
145145 " -library" , " ${CARGO_TARGET_DIR}/universal/tvos-sim/libliveview_native_core.a" ,
146146 " -headers" , " ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/crates/core/c_src/include" ,
147+ # visionOS
148+ " -library" , " ${CARGO_TARGET_DIR}/aarch64-apple-visionos/${CARGO_BUILD_TYPE}/libliveview_native_core.a" ,
149+ " -headers" , " ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/crates/core/c_src/include" ,
150+
151+ " -library" , " ${CARGO_TARGET_DIR}/aarch64-apple-visionos-sim/${CARGO_BUILD_TYPE}/libliveview_native_core.a" ,
152+ " -headers" , " ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/crates/core/c_src/include" ,
147153]
148154dependencies = [
149155 " build-macos" ,
150156 " build-ios" ,
151157 " build-watchos" ,
152158 " build-tvos" ,
159+ " build-visionos" ,
153160 " create-lipo-universal-directories" ,
154161 " lipo-macos" ,
155162 " lipo-ios-sim" ,
@@ -258,17 +265,37 @@ args = [
258265]
259266dependencies = [" install-targets" ]
260267
268+ # This "stage1" compiler is built by following the steps in:
269+ # https://github.com/rust-lang/rust/pull/121419#issuecomment-2047563639
270+ # The only change was:
271+ # ./x build --stage 1 library --target=aarch64-apple-darwin,aarch64-apple-visionos,aarch64-apple-visionos-sim
272+ # when using the changes from https://github.com/rust-lang/rust/pull/123723
273+ [tasks .build-visionos ]
274+ workspace = false
275+ category = " Build"
276+ description = " Compiles for all targets needed to produce a universal library for tvOS"
277+ command = " rustup"
278+ args = [
279+ " run" , " stage1" ,
280+ " cargo" , " build" ,
281+ " @@remove-empty(CARGO_MAKE_CARGO_VERBOSE_FLAGS)" ,
282+ " --profile" , " ${CARGO_PROFILE}" ,
283+ " --target" , " aarch64-apple-visionos" ,
284+ " --target" , " aarch64-apple-visionos-sim" ,
285+ " -p" , " liveview-native-core"
286+ ]
287+
261288[tasks .lipo-macos ]
262289dependencies = [" create-lipo-universal-directories" ]
263290workspace = false
264291category = " Build"
265292description = " Combines macOS targets into a universal binary"
266293command = " xcrun"
267294args = [
268- " lipo" , " -create" ,
269- " ${CARGO_TARGET_DIR}/aarch64-apple-darwin/${CARGO_BUILD_TYPE}/libliveview_native_core.a" ,
270- " ${CARGO_TARGET_DIR}/x86_64-apple-darwin/${CARGO_BUILD_TYPE}/libliveview_native_core.a" ,
271- " -output" , " ${CARGO_TARGET_DIR}/universal/macos/libliveview_native_core.a"
295+ " lipo" , " -create" ,
296+ " ${CARGO_TARGET_DIR}/aarch64-apple-darwin/${CARGO_BUILD_TYPE}/libliveview_native_core.a" ,
297+ " ${CARGO_TARGET_DIR}/x86_64-apple-darwin/${CARGO_BUILD_TYPE}/libliveview_native_core.a" ,
298+ " -output" , " ${CARGO_TARGET_DIR}/universal/macos/libliveview_native_core.a"
272299]
273300
274301[tasks .lipo-ios-sim ]
@@ -278,11 +305,11 @@ category = "Build"
278305description = " Combines iOS simulator targets into a universal binary"
279306command = " xcrun"
280307args = [
281- " lipo" ,
282- " -create" ,
283- " ${CARGO_TARGET_DIR}/aarch64-apple-ios-sim/${CARGO_BUILD_TYPE}/libliveview_native_core.a" ,
284- " ${CARGO_TARGET_DIR}/x86_64-apple-ios/${CARGO_BUILD_TYPE}/libliveview_native_core.a" ,
285- " -output" , " ${CARGO_TARGET_DIR}/universal/ios-sim/libliveview_native_core.a"
308+ " lipo" ,
309+ " -create" ,
310+ " ${CARGO_TARGET_DIR}/aarch64-apple-ios-sim/${CARGO_BUILD_TYPE}/libliveview_native_core.a" ,
311+ " ${CARGO_TARGET_DIR}/x86_64-apple-ios/${CARGO_BUILD_TYPE}/libliveview_native_core.a" ,
312+ " -output" , " ${CARGO_TARGET_DIR}/universal/ios-sim/libliveview_native_core.a"
286313]
287314
288315[tasks .lipo-watchos-sim ]
@@ -292,10 +319,10 @@ category = "Build"
292319description = " Combines watchOS simulator targets into a universal binary"
293320command = " xcrun"
294321args = [
295- " lipo" , " -create" ,
296- " ${CARGO_TARGET_DIR}/aarch64-apple-watchos-sim/${CARGO_BUILD_TYPE}/libliveview_native_core.a" ,
297- " ${CARGO_TARGET_DIR}/x86_64-apple-watchos-sim/${CARGO_BUILD_TYPE}/libliveview_native_core.a" ,
298- " -output" , " ${CARGO_TARGET_DIR}/universal/watchos-sim/libliveview_native_core.a"
322+ " lipo" , " -create" ,
323+ " ${CARGO_TARGET_DIR}/aarch64-apple-watchos-sim/${CARGO_BUILD_TYPE}/libliveview_native_core.a" ,
324+ " ${CARGO_TARGET_DIR}/x86_64-apple-watchos-sim/${CARGO_BUILD_TYPE}/libliveview_native_core.a" ,
325+ " -output" , " ${CARGO_TARGET_DIR}/universal/watchos-sim/libliveview_native_core.a"
299326]
300327
301328[tasks .lipo-tvos-sim ]
@@ -305,7 +332,7 @@ category = "Build"
305332description = " Combines watchOS simulator targets into a universal binary"
306333command = " xcrun"
307334args = [
308- " lipo" , " -create" ,
335+ " lipo" , " -create" ,
309336 " ${CARGO_TARGET_DIR}/aarch64-apple-tvos-sim/${CARGO_BUILD_TYPE}/libliveview_native_core.a" ,
310337 " ${CARGO_TARGET_DIR}/x86_64-apple-tvos/${CARGO_BUILD_TYPE}/libliveview_native_core.a" ,
311338 " -output" , " ${CARGO_TARGET_DIR}/universal/tvos-sim/libliveview_native_core.a"
@@ -318,7 +345,7 @@ category = "Build"
318345description = " Combines watchOS simulator targets into a universal binary"
319346command = " xcrun"
320347args = [
321- " lipo" , " -create" ,
348+ " lipo" , " -create" ,
322349 " ${CARGO_TARGET_DIR}/aarch64-apple-watchos/${CARGO_BUILD_TYPE}/libliveview_native_core.a" ,
323350 " ${CARGO_TARGET_DIR}/arm64_32-apple-watchos/${CARGO_BUILD_TYPE}/libliveview_native_core.a" ,
324351 " -output" , " ${CARGO_TARGET_DIR}/universal/watchos/libliveview_native_core.a" ,
0 commit comments