-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinstall-macOS-Vulkan-SDK.sh
executable file
·40 lines (30 loc) · 1.28 KB
/
install-macOS-Vulkan-SDK.sh
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
#!/bin/sh
# macOS is not too keen on supporting Vulkan, but installing
# this SDK will give good enough support.
# Please take your time to read through this script.
LOCAL="$HOME"/.local
LATEST_SDK_URL="https://sdk.lunarg.com/sdk/download/latest/mac/vulkan-sdk.dmg"
DMG_DEST="$LOCAL"/VulkanSDK.dmg
mkdir -v "$LOCAL" # Create ~/.local directories if they don't already exist.
mkdir -v "$LOCAL"/lib "$LOCAL"/share "$LOCAL"/bin "$LOCAL"/include
curl "$LATEST_SDK_URL" --output "$DMG_DEST"
# Mount .dmg file
MOUNTED="$(hdiutil attach "$DMG_DEST" | tail -n1)"
DEVICE="$(echo "$MOUNTED" | awk '{ print $1 }')"
VOLUME="$(echo "$MOUNTED" | awk '{ print $NF }')"
INSTALLER="$VOLUME/*.app/Contents/MacOS/InstallVulkan"
VULKAN_TMP="$LOCAL"/VulkanInstall
# Start with a clean install target
rm -fr "$VULKAN_TMP"
# Execute installer app, confirm without user input, and accept license
sudo $INSTALLER in -c --al --am -t "$VULKAN_TMP"
sudo chown -R "$USER" "$VULKAN_TMP"
# Finished extracting, move files to ~/.local folder
cp -a "$VULKAN_TMP"/macOS/lib/*.dylib "$LOCAL"/lib
cp -a "$VULKAN_TMP"/macOS/bin/* "$LOCAL"/bin
cp -a "$VULKAN_TMP"/macOS/share/* "$LOCAL"/share
cp -a "$VULKAN_TMP"/macOS/include/* "$LOCAL"/include
# Detach .dmg
hdiutil detach "$DEVICE"
# Remove Vulkan extraction dest
rm -fr "$VULKAN_TMP"