33 lines
1.2 KiB
Bash
Executable File
33 lines
1.2 KiB
Bash
Executable File
#!/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 |