38 lines
1.4 KiB
Bash
Executable File
38 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Copyright (C) 2026 SharpEmu Emulator Project
|
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
#
|
|
# Downloads the official (universal x86_64+arm64) MoltenVK dylib and stages
|
|
# it next to a SharpEmu build as libvulkan.1.dylib. The macOS build runs as
|
|
# an x86-64 process under Rosetta 2, so Homebrew's arm64-only Vulkan
|
|
# libraries cannot be used; the presenter looks for this app-local copy.
|
|
#
|
|
# Usage: scripts/fetch-macos-moltenvk.sh [output-dir]
|
|
# (default output: artifacts/bin/Debug/net10.0/osx-x64)
|
|
set -euo pipefail
|
|
|
|
MVK_VERSION="${MVK_VERSION:-v1.4.0}"
|
|
REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
OUT_DIR="${1:-$REPO_ROOT/artifacts/bin/Debug/net10.0/osx-x64}"
|
|
|
|
if [[ ! -d "$OUT_DIR" ]]; then
|
|
echo "output directory does not exist: $OUT_DIR (build first?)" >&2
|
|
exit 2
|
|
fi
|
|
|
|
WORK_DIR="$(mktemp -d)"
|
|
trap 'rm -rf "$WORK_DIR"' EXIT
|
|
|
|
echo ">> Downloading MoltenVK $MVK_VERSION..."
|
|
curl -sL -o "$WORK_DIR/mvk.tar" \
|
|
"https://github.com/KhronosGroup/MoltenVK/releases/download/$MVK_VERSION/MoltenVK-macos.tar"
|
|
tar -xf "$WORK_DIR/mvk.tar" -C "$WORK_DIR" \
|
|
MoltenVK/MoltenVK/dynamic/dylib/macOS/libMoltenVK.dylib
|
|
|
|
DYLIB="$WORK_DIR/MoltenVK/MoltenVK/dynamic/dylib/macOS/libMoltenVK.dylib"
|
|
file "$DYLIB" | grep -q x86_64 || { echo "downloaded dylib lacks x86_64 slice" >&2; exit 3; }
|
|
|
|
cp "$DYLIB" "$OUT_DIR/libMoltenVK.dylib"
|
|
cp "$DYLIB" "$OUT_DIR/libvulkan.1.dylib"
|
|
echo ">> Staged libMoltenVK.dylib + libvulkan.1.dylib in $OUT_DIR"
|