1if ! command -v generate_shader_embed_header 2>&1 >/dev/null; then
2    m generate_shader_embed_header
3fi
4
5for file in **/*.{frag,vert}; do
6    [ -f "${file}" ] || break
7
8    SHADER_GLSL="${file}"
9    echo "Found ${SHADER_GLSL}"
10
11    SHADER_SPV="${file}.spv"
12    SHADER_EMBED="${file}.inl"
13    SHADER_BASENAME="$(basename ${file})"
14    SHADER_EMBED_VARNAME=$(sed -r 's/\./_/g' <<< $SHADER_BASENAME)
15    SHADER_EMBED_VARNAME=$(sed -r 's/(^|_)([a-z])/\U\2/g' <<< $SHADER_EMBED_VARNAME)
16    SHADER_EMBED_VARNAME="k${SHADER_EMBED_VARNAME}"
17
18    glslc \
19        "${SHADER_GLSL}" \
20        -o "${SHADER_SPV}"
21
22    generate_shader_embed_header \
23        "${SHADER_GLSL}" \
24        "${SHADER_SPV}" \
25        "${SHADER_EMBED_VARNAME}" \
26        "${SHADER_EMBED}"
27
28    echo "Generated ${SHADER_EMBED}"
29done
30