diff options
| -rw-r--r-- | CMakeLists.txt | 1 | ||||
| -rw-r--r-- | shaders/CMakeLists.txt | 26 | ||||
| -rw-r--r-- | shaders/compute.comp | 2 | ||||
| -rw-r--r-- | src/CMakeLists.txt | 1 |
4 files changed, 30 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 4cf5438..347cb6d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,3 +8,4 @@ project(path-tracer VERSION 1.0 LANGUAGES CXX) find_package(Vulkan REQUIRED) add_subdirectory(src) +add_subdirectory(shaders) 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) diff --git a/shaders/compute.comp b/shaders/compute.comp new file mode 100644 index 0000000..34f46e2 --- /dev/null +++ b/shaders/compute.comp @@ -0,0 +1,2 @@ +void main() { +} diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 75c689b..801d4f1 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -14,6 +14,7 @@ add_executable( metal.cpp dielectric.cpp vulkan-loader.cpp + utils.cpp ) if(UNIX) |
