DALi Version 2.0.23
[platform/core/uifw/dali-toolkit.git] / build / tizen / shader-generator.sh
1 #!/bin/bash
2
3 indir=$1
4 outdir=$2
5
6 mkdir -p $outdir
7
8 if [ ! -e $indir ] ; then
9     echo "Error! "$indir" not found!"
10     exit 0
11 fi
12
13 cd $indir
14 all_shaders=$(ls -1 *.{vert,frag,def})
15 cd $OLDPWD
16
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;')
21
22   newname=$(echo ${name} | sed -e 's/\./-/;')".h"
23   echo Writing $newname
24
25   shader_fullpath=$(echo ${indir})$name
26
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
31 done
32
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
36
37 varnames=
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
43 done
44
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
49
50 echo "#include <string_view>" >> $outdir/../builtin-shader-extern-gen.h
51 echo "" >> $outdir/../builtin-shader-extern-gen.h
52
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
57 done
58 cat >> $outdir/../builtin-shader-extern-gen.h << EOF
59
60 #endif // GRAPHICS_BUILTIN_SHADER_EXTERN_GEN_H
61 EOF
62