fs = import('fs') asset_files = [ 'images/atlas.ppm', 'shaders/block_outline.frag.glsl', 'shaders/block_outline.vert.glsl', 'shaders/clouds.frag.glsl', 'shaders/clouds.vert.glsl', 'shaders/image_viewer.frag.glsl', 'shaders/image_viewer.vert.glsl', 'shaders/terrain.frag.glsl', 'shaders/terrain.vert.glsl' ] assets = [] foreach file : asset_files content = fs.read(file) name = file.replace('/', '_') \ .replace('.frag.glsl', '_fragment') \ .replace('.vert.glsl', '_vertex') \ .replace('.', '_') delim = 'meowcraft_asset' assets += f'char const* @name@ = R"@delim@(@content@)@delim@";' endforeach merged_assets = '\n\n'.join(assets) asset_file = configure_file(input: 'all_assets.cpp.in', output: 'all_assets.cpp', configuration: {'content': merged_assets})