summary refs log tree commit diff
path: root/assets
diff options
context:
space:
mode:
Diffstat (limited to 'assets')
-rw-r--r--assets/all_assets.cpp.in5
-rw-r--r--assets/meson.build29
2 files changed, 34 insertions, 0 deletions
diff --git a/assets/all_assets.cpp.in b/assets/all_assets.cpp.in
new file mode 100644
index 0000000..03b5dae
--- /dev/null
+++ b/assets/all_assets.cpp.in
@@ -0,0 +1,5 @@
+namespace MC::Assets::Files {
+
+@content@
+
+}
\ No newline at end of file
diff --git a/assets/meson.build b/assets/meson.build
new file mode 100644
index 0000000..75265c2
--- /dev/null
+++ b/assets/meson.build
@@ -0,0 +1,29 @@
+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})
\ No newline at end of file