summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-02-03 10:59:08 +0100
committerskal <pascal.massimino@gmail.com>2026-02-03 10:59:08 +0100
commit124899f27b6c1ec02bfa16a57a4e43ea2b7ebac0 (patch)
treef96af35a888baee7be5b1a01849325653c5f7af1 /CMakeLists.txt
parent4660ce3eec7c91a20d6d93fa3e142c1fd157e869 (diff)
test(shader): Add ShaderComposer and WGSL asset validation tests (Task #26)
Implemented comprehensive unit tests for ShaderComposer and a validation test for production WGSL shader assets. This ensures the shader asset pipeline is robust and that all shaders contain required entry points and snippets. Also improved InitShaderComposer to be more robust during testing.
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt19
1 files changed, 14 insertions, 5 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f3eff28..05623b6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -98,6 +98,7 @@ set(UTIL_SOURCES src/util/asset_manager.cc)
#-- - Subsystem Libraries -- -
add_library(util STATIC ${UTIL_SOURCES})
+add_dependencies(util generate_demo_assets generate_test_assets)
add_library(procedural STATIC ${PROCEDURAL_SOURCES})
add_library(audio STATIC ${AUDIO_SOURCES})
add_library(3d STATIC ${3D_SOURCES})
@@ -228,8 +229,8 @@ pack_test_assets(test_assets ${CMAKE_CURRENT_SOURCE_DIR}/assets/final/test_asset
#-- - Main Demo -- -
add_demo_executable(demo64k src/main.cc ${PLATFORM_SOURCES} ${GEN_DEMO_CC} ${GENERATED_TIMELINE_CC} ${GENERATED_MUSIC_DATA_CC})
-add_dependencies(demo64k generate_demo_assets generate_timeline generate_tracker_music)
-# Link order: Internal libs first, then external libs (DEMO_LIBS).
+
+add_dependencies(demo64k generate_demo_assets generate_timeline generate_tracker_music)# Link order: Internal libs first, then external libs (DEMO_LIBS).
# gpu and 3d depend on WGPU (in DEMO_LIBS).
target_link_libraries(demo64k PRIVATE 3d gpu audio procedural util ${DEMO_LIBS})
@@ -262,6 +263,10 @@ if(DEMO_BUILD_TESTS)
target_link_libraries(test_tracker PRIVATE audio util procedural ${DEMO_LIBS})
add_dependencies(test_tracker generate_tracker_music)
+ add_demo_test(test_shader_assets ShaderAssetValidation src/tests/test_shader_assets.cc ${GEN_DEMO_CC})
+ target_link_libraries(test_shader_assets PRIVATE util procedural ${DEMO_LIBS})
+ add_dependencies(test_shader_assets generate_demo_assets)
+
add_demo_executable(test_spectool src/tests/test_spectool.cc ${PLATFORM_SOURCES} ${GEN_DEMO_CC} ${GENERATED_MUSIC_DATA_CC})
target_compile_definitions(test_spectool PRIVATE DEMO_BUILD_TOOLS)
target_link_libraries(test_spectool PRIVATE audio util procedural ${DEMO_LIBS})
@@ -283,8 +288,12 @@ if(DEMO_BUILD_TESTS)
add_demo_test(test_3d ThreeDSystemTest src/tests/test_3d.cc)
- add_demo_test(test_shader_composer ShaderComposerTest src/tests/test_shader_composer.cc)
- target_link_libraries(test_shader_composer PRIVATE gpu ${DEMO_LIBS})
+ add_demo_test(test_shader_composer ShaderComposerTest src/tests/test_shader_composer.cc ${GEN_TEST_CC})
+ target_compile_definitions(test_shader_composer PRIVATE USE_TEST_ASSETS)
+ target_include_directories(test_shader_composer PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/src/generated_test ${CORE_INCLUDES})
+ target_link_libraries(test_shader_composer PRIVATE gpu util procedural ${DEMO_LIBS})
+ add_dependencies(test_shader_composer generate_test_assets)
+
add_demo_executable(test_texture_manager src/tests/test_texture_manager.cc ${PLATFORM_SOURCES} ${GENERATED_TIMELINE_CC} ${GEN_DEMO_CC} ${GENERATED_MUSIC_DATA_CC})
target_link_libraries(test_texture_manager PRIVATE 3d gpu audio procedural util ${DEMO_LIBS})
@@ -316,4 +325,4 @@ add_custom_target(final
add_custom_target(pack_source
COMMAND tar -czf demo_all.tgz --exclude=.git --exclude=build* --exclude=.gemini* --exclude=*.tgz --exclude=*.zip --exclude=.DS_Store .
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
-) \ No newline at end of file
+)