8 if [ ! -e $indir ] ; then
9 echo "Error! "$indir" not found!"
14 all_shaders=$(ls -1 *.{vert,frag,def})
17 # Generate one header file per shader which is defined as a const std::string_view
18 for name in $all_shaders ; do
19 echo "Generating header files for $name..."
20 varname=$(echo "SHADER_$name" | tr [a-z] [A-Z] | sed -e 's/-/_/g;s/\./_/g;')
22 newname=$(echo ${name} | sed -e 's/\./-/;')".h"
25 shader_fullpath=$(echo ${indir})$name
27 header_name="${varname}_GEN_H"
28 echo "const std::string_view" "$varname""{" > $outdir/$newname
29 cat $shader_fullpath | sed -e 's/^..*$/"&\\n"/' >> $outdir/$newname
30 echo "};" >> $outdir/$newname
33 # Generate one cpp file that includes all the previously generated string_views for shaders
34 echo "Generating cpp file..."
35 echo -e "#include \"../builtin-shader-extern-gen.h\"\n" > $outdir/builtin-shader-gen.cpp
38 for name in $all_shaders ; do
39 varname=$(echo "SHADER_$name" | tr [a-z] [A-Z] | sed -e 's/-/_/g;s/\./_/g;')
40 newname=$(echo ${name} | sed -e 's/\./-/;')".h"
41 varnames="${varnames} $varname"
42 echo "#include \"$newname\"" >> $outdir/builtin-shader-gen.cpp
45 # Generate one header file that defines all the shader string_views as extern variables
46 echo "Generating extern header file ( for external use )..."
47 echo "#ifndef GRAPHICS_BUILTIN_SHADER_EXTERN_GEN_H" > $outdir/../builtin-shader-extern-gen.h
48 echo -e "#define GRAPHICS_BUILTIN_SHADER_EXTERN_GEN_H\n" >> $outdir/../builtin-shader-extern-gen.h
50 echo "#include <string_view>" >> $outdir/../builtin-shader-extern-gen.h
51 echo "" >> $outdir/../builtin-shader-extern-gen.h
53 for name in $all_shaders ; do
54 varname=$(echo "SHADER_$name" | tr [a-z] [A-Z] | sed -e 's/-/_/g;s/\./_/g;')
55 newname=$(echo ${name} | sed -e 's/\./-/;')".h"
56 echo "extern const std::string_view $varname;" >> $outdir/../builtin-shader-extern-gen.h
58 cat >> $outdir/../builtin-shader-extern-gen.h << EOF
60 #endif // GRAPHICS_BUILTIN_SHADER_EXTERN_GEN_H