#!/usr/bin/env bash set -euo pipefail ROOT_DIR="$(cd "$(dirname "$0")" && pwd)" cd "$ROOT_DIR" if ! command -v glslc >/dev/null 2>&1; then echo "error: glslc not found. Install with: brew install shaderc" exit 1 fi if ! command -v odin >/dev/null 2>&1; then echo "error: odin not found. Install with: brew install odin" exit 1 fi if [[ -z "${VK_ICD_FILENAMES:-}" ]]; then if [[ -f "/opt/homebrew/etc/vulkan/icd.d/MoltenVK_icd.json" ]]; then export VK_ICD_FILENAMES="/opt/homebrew/etc/vulkan/icd.d/MoltenVK_icd.json" elif [[ -f "/opt/homebrew/Cellar/molten-vk/1.4.1/etc/vulkan/icd.d/MoltenVK_icd.json" ]]; then export VK_ICD_FILENAMES="/opt/homebrew/Cellar/molten-vk/1.4.1/etc/vulkan/icd.d/MoltenVK_icd.json" fi fi if [[ -z "${DYLD_FALLBACK_LIBRARY_PATH:-}" ]]; then export DYLD_FALLBACK_LIBRARY_PATH="/opt/homebrew/lib" elif [[ ":${DYLD_FALLBACK_LIBRARY_PATH}:" != *":/opt/homebrew/lib:"* ]]; then export DYLD_FALLBACK_LIBRARY_PATH="/opt/homebrew/lib:${DYLD_FALLBACK_LIBRARY_PATH}" fi mkdir -p "bin" glslc -fshader-stage=vert "shaders/cubes.vert.glsl" -o "shaders/cubes.vert.spv" glslc -fshader-stage=frag "shaders/cubes.frag.glsl" -o "shaders/cubes.frag.spv" odin build src -out:bin/cubes_vulkan ./bin/cubes_vulkan