|
| 1 | +#!/bin/bash |
| 2 | +# Copyright (c) Meta Platforms, Inc. and affiliates. |
| 3 | +# All rights reserved. |
| 4 | +# |
| 5 | +# Copyright 2026 Arm Limited and/or its affiliates. |
| 6 | +# |
| 7 | +# This source code is licensed under the BSD-style license found in the |
| 8 | +# LICENSE file in the root directory of this source tree. |
| 9 | + |
| 10 | +set -ex |
| 11 | + |
| 12 | +install_vulkan_sdk() { |
| 13 | + VULKAN_SDK_VERSION=$1 |
| 14 | + _vulkan_sdk_url="https://sdk.lunarg.com/sdk/download/${VULKAN_SDK_VERSION}/mac/vulkansdk-macos-${VULKAN_SDK_VERSION}.zip" |
| 15 | + _vulkan_sdk_dir=/tmp/vulkansdk |
| 16 | + _vulkan_sdk_extract_dir=/tmp/vulkansdk-installer |
| 17 | + |
| 18 | + mkdir -p "${_vulkan_sdk_dir}" |
| 19 | + rm -rf "${_vulkan_sdk_extract_dir}" |
| 20 | + mkdir -p "${_vulkan_sdk_extract_dir}" |
| 21 | + |
| 22 | + _tmp_archive="/tmp/vulkansdk-macos.zip" |
| 23 | + |
| 24 | + curl --silent --show-error --location --fail --retry 3 \ |
| 25 | + --output "${_tmp_archive}" "${_vulkan_sdk_url}" |
| 26 | + |
| 27 | + unzip -q -o "${_tmp_archive}" -d "${_vulkan_sdk_extract_dir}" |
| 28 | + |
| 29 | + _vulkan_sdk_app_path="$( |
| 30 | + find "${_vulkan_sdk_extract_dir}" -maxdepth 3 -type d \ |
| 31 | + \( -name "vulkansdk-macOS-${VULKAN_SDK_VERSION}.app" \ |
| 32 | + -o -name "vulkansdk-macos-${VULKAN_SDK_VERSION}.app" \) \ |
| 33 | + -print -quit |
| 34 | + )" |
| 35 | + if [[ -z "${_vulkan_sdk_app_path}" ]]; then |
| 36 | + echo "Failed to find Vulkan SDK installer app" |
| 37 | + exit 1 |
| 38 | + fi |
| 39 | + _vulkan_sdk_installer="${_vulkan_sdk_app_path}/Contents/MacOS/$(basename "${_vulkan_sdk_app_path}" .app)" |
| 40 | + if [[ ! -x "${_vulkan_sdk_installer}" ]]; then |
| 41 | + echo "Failed to find Vulkan SDK installer binary at ${_vulkan_sdk_installer}" |
| 42 | + exit 1 |
| 43 | + fi |
| 44 | + |
| 45 | + "${_vulkan_sdk_installer}" \ |
| 46 | + --root "${_vulkan_sdk_dir}/${VULKAN_SDK_VERSION}" \ |
| 47 | + --accept-licenses \ |
| 48 | + --default-answer \ |
| 49 | + --confirm-command install |
| 50 | + |
| 51 | + export PATH="${PATH}:${_vulkan_sdk_dir}/${VULKAN_SDK_VERSION}/macOS/bin/" |
| 52 | + export VULKAN_SDK="${_vulkan_sdk_dir}/${VULKAN_SDK_VERSION}/macOS" |
| 53 | + export DYLD_LIBRARY_PATH="${_vulkan_sdk_dir}/${VULKAN_SDK_VERSION}/macOS/lib${DYLD_LIBRARY_PATH:+:${DYLD_LIBRARY_PATH}}" |
| 54 | + |
| 55 | + _moltenvk_icd="${VULKAN_SDK}/share/vulkan/icd.d/MoltenVK_icd.json" |
| 56 | + if [[ -f "${_moltenvk_icd}" ]]; then |
| 57 | + export VK_DRIVER_FILES="${_moltenvk_icd}" |
| 58 | + fi |
| 59 | +} |
| 60 | + |
| 61 | +VULKAN_SDK_VERSION="1.4.321.0" |
| 62 | + |
| 63 | +install_vulkan_sdk "${VULKAN_SDK_VERSION}" |
0 commit comments