-
-
Notifications
You must be signed in to change notification settings - Fork 10
Expand file tree
/
Copy pathbuildkernels.sh
More file actions
executable file
·63 lines (38 loc) · 2.68 KB
/
Copy pathbuildkernels.sh
File metadata and controls
executable file
·63 lines (38 loc) · 2.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#!/bin/bash
# Builds the engine's Metal library for every platform the package supports. The deployment
# target of each build is pinned to the package's (Package.swift: macOS 14, iOS 17, visionOS 2;
# tvOS 17): without the flag the metal compiler stamps the library with the SDK's own version,
# and a metallib built by a newer Xcode then fails to load on any older OS the package still
# supports (an older CI runner, a headset on the previous release).
set -e
# Earlier versions of this script left .air intermediates in the kernels directory, which
# SwiftPM flags as unhandled files; clear any stale ones from an existing checkout first.
rm -f Sources/UntoldEngine/UntoldEngineKernels/*.air
cd Sources/UntoldEngine/UntoldEngineKernels
# .air files are compiler intermediates that embed this machine's paths; keep them out of the package tree.
airDir="${TMPDIR:-/tmp}"
MACOS_MIN=14.0
IOS_MIN=17.0
TVOS_MIN=17.0
XROS_MIN=2.0
# mac (device)
xcrun -sdk macosx metal -mmacosx-version-min=$MACOS_MIN UntoldEngineKernels.metal -c -o "$airDir/UntoldEngineKernels.air"
xcrun -sdk macosx metallib "$airDir/UntoldEngineKernels.air" -o UntoldEngineKernels.metallib
# iOS (device)
xcrun -sdk iphoneos metal -mios-version-min=$IOS_MIN UntoldEngineKernels.metal -c -o "$airDir/UntoldEngineKernels-ios.air"
xcrun -sdk iphoneos metallib "$airDir/UntoldEngineKernels-ios.air" -o UntoldEngineKernels-ios.metallib
# iOS (simulator)
xcrun -sdk iphonesimulator metal -mtargetos=ios$IOS_MIN-simulator UntoldEngineKernels.metal -c -o "$airDir/UntoldEngineKernels-iossim.air"
xcrun -sdk iphonesimulator metallib "$airDir/UntoldEngineKernels-iossim.air" -o UntoldEngineKernels-iossim.metallib
# tvOS (device)
xcrun -sdk appletvos metal -mtvos-version-min=$TVOS_MIN UntoldEngineKernels.metal -c -o "$airDir/UntoldEngineKernels-tvos.air"
xcrun -sdk appletvos metallib "$airDir/UntoldEngineKernels-tvos.air" -o UntoldEngineKernels-tvos.metallib
# tvOS (simulator)
xcrun -sdk appletvsimulator metal -mtargetos=tvos$TVOS_MIN-simulator UntoldEngineKernels.metal -c -o "$airDir/UntoldEngineKernels-tvossim.air"
xcrun -sdk appletvsimulator metallib "$airDir/UntoldEngineKernels-tvossim.air" -o UntoldEngineKernels-tvossim.metallib
# visionOS (device)
xcrun -sdk xros metal -mtargetos=xros$XROS_MIN UntoldEngineKernels.metal -c -o "$airDir/UntoldEngineKernels-xros.air"
xcrun -sdk xros metallib "$airDir/UntoldEngineKernels-xros.air" -o UntoldEngineKernels-xros.metallib
# visionOS (simulator)
xcrun -sdk xrsimulator metal -mtargetos=xros$XROS_MIN-simulator UntoldEngineKernels.metal -c -o "$airDir/UntoldEngineKernels-xrossim.air"
xcrun -sdk xrsimulator metallib "$airDir/UntoldEngineKernels-xrossim.air" -o UntoldEngineKernels-xrossim.metallib