6 shaders_dir=./dali-core/dali/graphics/vulkan/shaders
7 generated_dir=./dali-core/dali/graphics/vulkan/generated
10 ${shaders_dir}/basic-shader.vert|VSH_CODE|vert
11 ${shaders_dir}/basic-shader.frag|FSH_CODE|frag
12 ${shaders_dir}/image-visual-shader.vert|VSH_IMAGE_VISUAL_CODE|vert
13 ${shaders_dir}/image-visual-shader.frag|FSH_IMAGE_VISUAL_CODE|frag"
15 echo "// Autogenerated" > ${generated_dir}/spv-shaders-gen.h
16 echo -e "#ifndef SPV_GENERATED_HEADER
17 #define SPV_GENERATED_HEADER
18 #include <vector>\n#include <cstdint>\n\n" >> ${generated_dir}/spv-shaders-gen.h
20 echo "// Autogenerated" > ${generated_dir}/spv-shaders-gen.cpp
21 echo "#include \"spv-shaders-gen.h\"" > ${generated_dir}/spv-shaders-gen.cpp
22 echo "#pragma GCC diagnostic push
23 #pragma GCC diagnostic ignored \"-Wlarger-than=\"" >> ${generated_dir}/spv-shaders-gen.cpp
25 for f in ${shaders} ; do
26 fname=$(echo $f | awk -F '|' '{print $1}')
27 varname=$(echo $f | awk -F '|' '{print $2}')
28 stagename=$(echo $f | awk -F '|' '{print $3}')
29 out=/tmp/$(basename ${fname}).spv
30 ${VULKAN_SDK}/bin/glslangValidator -V1.0 -S ${stagename} ${fname} -o ${out}
31 echo "std::vector<uint8_t> $varname = {" >> ${generated_dir}/spv-shaders-gen.cpp
32 xxd -i ${out} | tail -n +2 | head -n -2 >> ${generated_dir}/spv-shaders-gen.cpp
33 echo "};" >> ${generated_dir}/spv-shaders-gen.cpp
34 echo "extern std::vector<uint8_t> $varname;" >> ${generated_dir}/spv-shaders-gen.h
36 echo "/*" >> ${generated_dir}/spv-shaders-gen.h
37 cat $fname >> ${generated_dir}/spv-shaders-gen.h
38 echo -e "*/\n\n" >> ${generated_dir}/spv-shaders-gen.h
42 echo "#pragma GCC diagnostic pop" >> ${generated_dir}/spv-shaders-gen.cpp
44 echo -e "#endif // SPV_GENERATED_HEADER\n\n" >> ${generated_dir}/spv-shaders-gen.h