diff options
| author | skal <pascal.massimino@gmail.com> | 2026-02-06 10:22:01 +0100 |
|---|---|---|
| committer | skal <pascal.massimino@gmail.com> | 2026-02-06 10:22:01 +0100 |
| commit | 34b88141c44b7b7ea56f160d755de1d17c79e882 (patch) | |
| tree | 87f21c79a1dfb10fa85a853c5a5488205dc13ba5 /PROJECT_CONTEXT.md | |
| parent | e281b6ff0884a5b4af8aa2ca79fd01141bc2005b (diff) | |
fix(build): Add file-level dependencies for assets (shaders, meshes, audio)
CRITICAL FIX: Changing .wgsl/.spec/.obj files now triggers asset regeneration.
Problem: CMake only tracked demo_assets.txt, not individual asset files.
Result: Editing shaders didn't trigger rebuilds → stale code in binary!
Solution: Parse demo_assets.txt to extract all asset filenames and add them
to DEPENDS clause in add_custom_command(). Now CMake tracks all 42 assets.
Implementation:
- Added parse_asset_list() function to extract filenames from asset list
- Regex parses format: ASSET_NAME, COMPRESSION, FILENAME, DESCRIPTION
- Filters out PROC() entries (procedural, no file on disk)
- Adds full paths to DEPENDS for both pack_assets() and pack_test_assets()
Performance impact:
- Before: touch shader → 0.28s (no rebuild, STALE!)
- After: touch shader → 3.55s (regenerates assets, rebuilds users)
Files tracked: 42 demo assets + 17 test assets
- Shaders: renderer_3d.wgsl, mesh_render.wgsl, skybox.wgsl, etc.
- Audio: kick1.spec, KICK_606.spec, snare samples, bass samples
- Meshes: dodecahedron.obj, other geometry
Developer workflow: No more 'touch demo_assets.txt' workaround needed!
Just edit shaders and rebuild - dependencies work correctly now.
Diffstat (limited to 'PROJECT_CONTEXT.md')
0 files changed, 0 insertions, 0 deletions
