diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0a3c81d1..3140e24e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -199,6 +199,20 @@ jobs: -p @executable_path/../Frameworks/ fi + # dylibbundler may miss Homebrew's Vulkan loader on some runner images. + # Copy all vulkan-loader dylib names so wowee_bin can resolve whichever + # install_name it was linked against (e.g. libvulkan.1.4.341.dylib). + VULKAN_LIB_DIR="$(brew --prefix vulkan-loader)/lib" + for lib in "${VULKAN_LIB_DIR}"/libvulkan*.dylib; do + [ -e "${lib}" ] || continue + cp -f "${lib}" Wowee.app/Contents/Frameworks/ + done + + if ! ls Wowee.app/Contents/Frameworks/libvulkan*.dylib >/dev/null 2>&1; then + echo "Missing Vulkan loader dylib(s) in app bundle Frameworks/" >&2 + exit 1 + fi + # Info.plist cat > Wowee.app/Contents/Info.plist << 'EOF' diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 34917dd1..b570fc72 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -183,6 +183,20 @@ jobs: fi fi + # dylibbundler may miss Homebrew's Vulkan loader on some runner images. + # Copy all vulkan-loader dylib names so wowee_bin can resolve whichever + # install_name it was linked against (e.g. libvulkan.1.4.341.dylib). + VULKAN_LIB_DIR="$(brew --prefix vulkan-loader)/lib" + for lib in "${VULKAN_LIB_DIR}"/libvulkan*.dylib; do + [ -e "${lib}" ] || continue + cp -f "${lib}" Wowee.app/Contents/Frameworks/ + done + + if ! ls Wowee.app/Contents/Frameworks/libvulkan*.dylib >/dev/null 2>&1; then + echo "Missing Vulkan loader dylib(s) in app bundle Frameworks/" >&2 + exit 1 + fi + # Info.plist cat > Wowee.app/Contents/Info.plist << EOF