#!/bin/bash source_directory="shaders/source" compiled_directory="shaders/compiled" vulkan_version="1.0" mkdir -p $compiled_directory rm -f $compiled_directory/* echo "compiling from $source_directory -> $compiled_directory" for file in "$source_directory"/*; do filename=$(basename "$file") if [[ "$filename" =~ ^([^\.]+)\.([^\.]+)\.([^\.]+)$ ]]; then middlepart="${BASH_REMATCH[2]}" filename="${BASH_REMATCH[1]}.${BASH_REMATCH[2]}" shader_language="${BASH_REMATCH[3]}" if [[ "$shader_language" != "glsl" ]]; then echo "FUCK YOU I'M NOT COMPILING HLSL SHADERS, DO IT YOURSELF" exit 1 fi if [[ "$middlepart" == "frag" ]]; then echo "frag $filename.$shader_language > $filename.spv" glslc -O -fshader-stage=fragment --target-env=vulkan$vulkan_version "$source_directory/$filename.$shader_language" -fshader-stage=fragment -o "$compiled_directory/$filename.spv" elif [[ "$middlepart" == "vert" ]]; then echo "vert $filename.$shader_language > $filename.spv" glslc -O -fshader-stage=vertex --target-env=vulkan$vulkan_version "$source_directory/$filename.$shader_language" -o "$compiled_directory/$filename.spv" fi fi done tree $compiled_directory