aboutsummaryrefslogtreecommitdiffstats
path: root/shaders/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'shaders/CMakeLists.txt')
-rw-r--r--shaders/CMakeLists.txt26
1 files changed, 26 insertions, 0 deletions
diff --git a/shaders/CMakeLists.txt b/shaders/CMakeLists.txt
new file mode 100644
index 0000000..99284e5
--- /dev/null
+++ b/shaders/CMakeLists.txt
@@ -0,0 +1,26 @@
+file(GLOB_RECURSE GLSL_SOURCE_FILES
+ "./*.frag"
+ "./*.vert"
+ "./*.geom"
+ "./*.comp"
+ "./*.glsl"
+)
+
+message(STATUS ${GLSL_SOURCE_FILES})
+
+foreach(GLSL ${GLSL_SOURCE_FILES})
+ get_filename_component(FILE_NAME ${GLSL} NAME)
+ set(SPIRV "${PROJECT_BINARY_DIR}/shaders/${FILE_NAME}.spv")
+ add_custom_command(
+ OUTPUT ${SPIRV}
+ COMMAND glslc --target-env=vulkan1.2 -std=460 ${GLSL} -o ${SPIRV} -I "../shaders/include" # relative to build directory
+ DEPENDS ${GLSL})
+ list(APPEND SPIRV_BINARY_FILES ${SPIRV})
+endforeach(GLSL)
+
+add_custom_target(
+ shaders
+ DEPENDS ${SPIRV_BINARY_FILES}
+ )
+
+add_dependencies(path-tracer shaders)