macro(strfy input postfx)
	get_filename_component(FLNAME "${input}" NAME_WE)
	get_filename_component(FLEXT "${input}" EXT)
	get_filename_component(FLPATH "${input}" PATH)
	string(SUBSTRING ${FLEXT} 1 -1 FLEXT)
	string(TOUPPER "SO_${FLNAME}_${FLEXT}_H" COIN_HEADER_DEF)
	string(TOUPPER ${FLNAME} COIN_TEXTVAR_NAME)
	set(COIN_TEXTVAR_NAME "${COIN_TEXTVAR_NAME}${postfx}")
	#message(STATUS "Parse: ${CMAKE_SOURCE_DIR}/${input}")
	FILE(READ ${CMAKE_SOURCE_DIR}/${input} f0)
	STRING(REGEX REPLACE "\\\\" "\\\\\\\\" f1 "${f0}")
	STRING(REGEX REPLACE "\"" "\\\\\"" f2 "${f1}")
	STRING(REGEX REPLACE "\r?\n" "\\\\n\"\n  \"" COIN_STR_SOURCE_CODE "${f2}")
	configure_file(strfytemplate.cmake.in "${FLPATH}/${FLNAME}.h")
endmacro()

file(GLOB_RECURSE COIN_SHADER_GLSL RELATIVE ${CMAKE_SOURCE_DIR} *.glsl)
foreach(INPUTFILE ${COIN_SHADER_GLSL})
    strfy(${INPUTFILE} "_shadersource")
endforeach(INPUTFILE)
file(GLOB_RECURSE COIN_SHADER_INVENTOR RELATIVE ${CMAKE_SOURCE_DIR} *.iv)
foreach(INPUTFILE ${COIN_SHADER_INVENTOR})
    strfy(${INPUTFILE} "_draggergeometry")
endforeach(INPUTFILE)
