summaryrefslogtreecommitdiff
path: root/cmake/DemoCommon.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/DemoCommon.cmake')
-rw-r--r--cmake/DemoCommon.cmake31
1 files changed, 31 insertions, 0 deletions
diff --git a/cmake/DemoCommon.cmake b/cmake/DemoCommon.cmake
index 1c63b26..401ea05 100644
--- a/cmake/DemoCommon.cmake
+++ b/cmake/DemoCommon.cmake
@@ -197,3 +197,34 @@ macro(add_demo_test NAME TEST_NAME LABEL)
add_test(NAME ${TEST_NAME} COMMAND ${NAME})
set_tests_properties(${TEST_NAME} PROPERTIES LABELS "${LABEL}")
endmacro()
+
+# =============================================================================
+# demo_add_asset_deps(TARGET CATEGORY)
+# =============================================================================
+# Adds asset category dependencies to a target
+#
+# Arguments:
+# TARGET - CMake target name
+# CATEGORY - Asset category (shaders, audio, models, data, all, test)
+#
+# Usage:
+# demo_add_asset_deps(test_synth audio)
+# demo_add_asset_deps(test_shader_compilation shaders)
+# demo_add_asset_deps(demo64k all)
+function(demo_add_asset_deps TARGET CATEGORY)
+ if(CATEGORY STREQUAL "all")
+ add_dependencies(${TARGET} generate_demo_shaders generate_demo_audio generate_demo_models generate_demo_data)
+ elseif(CATEGORY STREQUAL "test")
+ add_dependencies(${TARGET} generate_test_assets)
+ elseif(CATEGORY STREQUAL "shaders")
+ add_dependencies(${TARGET} generate_demo_shaders)
+ elseif(CATEGORY STREQUAL "audio")
+ add_dependencies(${TARGET} generate_demo_audio)
+ elseif(CATEGORY STREQUAL "models")
+ add_dependencies(${TARGET} generate_demo_models)
+ elseif(CATEGORY STREQUAL "data")
+ add_dependencies(${TARGET} generate_demo_data)
+ else()
+ message(FATAL_ERROR "Unknown asset category: ${CATEGORY}")
+ endif()
+endfunction()