From 0f08088f399365041e73c8ae534587d97d3f349e Mon Sep 17 00:00:00 2001 From: Pasha Bibko <156938226+PashaBibko@users.noreply.github.com> Date: Wed, 19 Nov 2025 20:33:36 +0000 Subject: [PATCH] Added shaders to build process --- CMakeLists.txt | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index d09bb20..f58214b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -27,6 +27,29 @@ FetchContent_Declare( FetchContent_MakeAvailable(glfw) +# Compiles the shaders # +set(SHADER_DIR "${CMAKE_SOURCE_DIR}/shaders") +file(GLOB SHADERS + "${SHADER_DIR}/*.frag" + "${SHADER_DIR}/*.vert" +) + +foreach (SHADER ${SHADERS}) + get_filename_component(FILENAME_WE ${SHADER} NAME_WE) + set(SPIRV_FILE "${SHADER_DIR}/${FILENAME_WE}.spv") + + add_custom_command( + OUTPUT ${SPIRV_FILE} + COMMAND ${Vulkan_GLSLANG_VALIDATOR_EXECUTABLE} -V ${SHADER} -o ${SPIRV_FILE} + DEPENDS ${SHADER} + COMMENT "Compiling shader ${FILENAME}" + ) + + list(APPEND SPIRV_BINARY_FILES ${SPIRV_FILE}) +endforeach() + +add_custom_target(CompileShaders ALL DEPENDS ${SPIRV_BINARY_FILES}) + # Creates the output binary project(VulkanRenderer LANGUAGES CXX) add_executable(VulkanRenderer @@ -39,6 +62,8 @@ add_executable(VulkanRenderer src/VulkanRenderer.h ) +add_dependencies(VulkanRenderer CompileShaders) + target_precompile_headers(VulkanRenderer PRIVATE src/VulkanRenderer.h) # Links the libraries to the binary #