2022-05-12 22:50:33 -04:00
|
|
|
file( READ ${SOURCE} SOURCE_TEXT )
|
2022-05-12 23:16:08 -04:00
|
|
|
file( SIZE ${SOURCE} SOURCE_FILESIZE )
|
|
|
|
|
|
|
|
set( MAX_BYTES_PER_LITERAL 16380 )
|
|
|
|
|
|
|
|
math(EXPR NUMBER_LITERALS "${SOURCE_FILESIZE}/${MAX_BYTES_PER_LITERAL}")
|
|
|
|
|
|
|
|
|
|
|
|
set( outCppTextStdString "std::string ${OUTVARNAME} = ")
|
2022-05-12 22:50:33 -04:00
|
|
|
|
|
|
|
set( outCppText
|
|
|
|
"
|
2022-05-12 23:16:08 -04:00
|
|
|
#include <string>
|
2022-05-12 22:50:33 -04:00
|
|
|
#include <${OUTHEADERFILE}>
|
|
|
|
|
|
|
|
namespace KIGFX {
|
|
|
|
namespace BUILTIN_SHADERS {
|
2022-05-12 23:16:08 -04:00
|
|
|
")
|
|
|
|
|
|
|
|
|
|
|
|
MATH(EXPR LAST_LITERAL_ITER "${LITERAL_ITER}-1")
|
|
|
|
|
|
|
|
foreach(LITERAL_ITER RANGE ${NUMBER_LITERALS})
|
|
|
|
set( outCppText
|
|
|
|
"
|
|
|
|
${outCppText}
|
|
|
|
|
|
|
|
const char ${OUTVARNAME}_p${LITERAL_ITER}[] = R\"SHADER_SOURCE(
|
2022-05-12 22:50:33 -04:00
|
|
|
${SOURCE_TEXT}
|
|
|
|
)SHADER_SOURCE\";
|
2022-05-12 23:16:08 -04:00
|
|
|
|
|
|
|
" )
|
|
|
|
|
|
|
|
set( outCppTextStdString "${outCppTextStdString} std::string(${OUTVARNAME}_p${LITERAL_ITER})")
|
|
|
|
if( ${LITERAL_ITER} LESS ${LAST_LITERAL_ITER})
|
|
|
|
set( outCppTextStdString " ${outCppTextStdString} +")
|
|
|
|
endif()
|
|
|
|
endforeach()
|
|
|
|
|
|
|
|
set( outCppTextStdString "${outCppTextStdString};")
|
|
|
|
|
|
|
|
set( outCppText
|
|
|
|
"
|
|
|
|
${outCppText}
|
|
|
|
|
|
|
|
${outCppTextStdString}
|
2022-05-12 22:50:33 -04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
" )
|
|
|
|
|
|
|
|
file(
|
|
|
|
WRITE ${DESTINATION_SOURCE_DIR}/${OUTCPPFILE}
|
|
|
|
"${outCppText}"
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
set( outHeaderText
|
|
|
|
"namespace KIGFX {
|
|
|
|
namespace BUILTIN_SHADERS {
|
2022-05-12 23:16:08 -04:00
|
|
|
extern std::string ${OUTVARNAME};
|
2022-05-12 22:50:33 -04:00
|
|
|
}
|
|
|
|
}"
|
|
|
|
)
|
|
|
|
|
|
|
|
file(
|
|
|
|
WRITE ${DESTINATION_HEADER_DIR}/${OUTHEADERFILE}
|
|
|
|
"${outHeaderText}"
|
|
|
|
)
|
|
|
|
|
|
|
|
message(STATUS "Shader ${SOURCE} converted to ${DESTINATION_SOURCE_DIR}/${OUTCPPFILE}")
|