@@ -5,16 +5,45 @@ ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
55BUILD_DIR=" ${ROOT_DIR} /build/macos"
66GHOSTTY_DIR=" ${ROOT_DIR} /vendor/ghostty"
77GHOSTTY_VERSION=" $( sed -n ' s/^.*\.version = "\([^"]*\)".*$/\1/p' " ${GHOSTTY_DIR} /build.zig.zon" | head -n1) "
8+ BUILD_MODE=" ${TASKERS_MACOS_DEP_MODE:- native} "
9+ MODE_STAMP=" ${BUILD_DIR} /.deps-mode"
10+
11+ case " ${BUILD_MODE} " in
12+ native|universal)
13+ ;;
14+ * )
15+ echo " unsupported TASKERS_MACOS_DEP_MODE=${BUILD_MODE} ; expected native or universal" >&2
16+ exit 1
17+ ;;
18+ esac
819
920mkdir -p " ${BUILD_DIR} /bin" " ${BUILD_DIR} /resources"
1021
1122pushd " ${ROOT_DIR} " > /dev/null
12- cargo build --release -p taskers-macos-ffi
13- cargo build --release -p taskers-cli --bin taskersctl
23+ if [[ " ${BUILD_MODE} " == " universal" ]]; then
24+ cargo build --release -p taskers-macos-ffi --target aarch64-apple-darwin
25+ cargo build --release -p taskers-macos-ffi --target x86_64-apple-darwin
26+ cargo build --release -p taskers-cli --bin taskersctl --target aarch64-apple-darwin
27+ cargo build --release -p taskers-cli --bin taskersctl --target x86_64-apple-darwin
28+ else
29+ cargo build --release -p taskers-macos-ffi
30+ cargo build --release -p taskers-cli --bin taskersctl
31+ fi
1432popd > /dev/null
1533
16- cp " ${ROOT_DIR} /target/release/libtaskers_macos_ffi.a" " ${BUILD_DIR} /libtaskers_macos_ffi.a"
17- cp " ${ROOT_DIR} /target/release/taskersctl" " ${BUILD_DIR} /bin/taskersctl"
34+ if [[ " ${BUILD_MODE} " == " universal" ]]; then
35+ lipo -create \
36+ -output " ${BUILD_DIR} /libtaskers_macos_ffi.a" \
37+ " ${ROOT_DIR} /target/aarch64-apple-darwin/release/libtaskers_macos_ffi.a" \
38+ " ${ROOT_DIR} /target/x86_64-apple-darwin/release/libtaskers_macos_ffi.a"
39+ lipo -create \
40+ -output " ${BUILD_DIR} /bin/taskersctl" \
41+ " ${ROOT_DIR} /target/aarch64-apple-darwin/release/taskersctl" \
42+ " ${ROOT_DIR} /target/x86_64-apple-darwin/release/taskersctl"
43+ else
44+ cp " ${ROOT_DIR} /target/release/libtaskers_macos_ffi.a" " ${BUILD_DIR} /libtaskers_macos_ffi.a"
45+ cp " ${ROOT_DIR} /target/release/taskersctl" " ${BUILD_DIR} /bin/taskersctl"
46+ fi
1847chmod +x " ${BUILD_DIR} /bin/taskersctl"
1948
2049pushd " ${GHOSTTY_DIR} " > /dev/null
@@ -25,7 +54,7 @@ zig build \
2554 -Demit-xcframework=true \
2655 -Demit-macos-app=false \
2756 " -Dversion-string=${GHOSTTY_VERSION} " \
28- -Dxcframework-target=native
57+ " -Dxcframework-target=${BUILD_MODE} "
2958popd > /dev/null
3059
3160rm -rf " ${BUILD_DIR} /GhosttyKit.xcframework"
@@ -34,3 +63,5 @@ cp -R "${GHOSTTY_DIR}/macos/GhosttyKit.xcframework" "${BUILD_DIR}/GhosttyKit.xcf
3463rm -rf " ${BUILD_DIR} /resources/ghostty" " ${BUILD_DIR} /resources/terminfo"
3564cp -R " ${GHOSTTY_DIR} /zig-out/share/ghostty" " ${BUILD_DIR} /resources/ghostty"
3665cp -R " ${GHOSTTY_DIR} /zig-out/share/terminfo" " ${BUILD_DIR} /resources/terminfo"
66+
67+ printf ' %s\n' " ${BUILD_MODE} " > " ${MODE_STAMP} "
0 commit comments