Added shaders to build process

This commit is contained in:
Pasha Bibko
2025-11-19 20:33:36 +00:00
parent c3924b05c1
commit 0f08088f39

View File

@@ -27,6 +27,29 @@ FetchContent_Declare(
FetchContent_MakeAvailable(glfw) 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 # Creates the output binary
project(VulkanRenderer LANGUAGES CXX) project(VulkanRenderer LANGUAGES CXX)
add_executable(VulkanRenderer add_executable(VulkanRenderer
@@ -39,6 +62,8 @@ add_executable(VulkanRenderer
src/VulkanRenderer.h src/VulkanRenderer.h
) )
add_dependencies(VulkanRenderer CompileShaders)
target_precompile_headers(VulkanRenderer PRIVATE src/VulkanRenderer.h) target_precompile_headers(VulkanRenderer PRIVATE src/VulkanRenderer.h)
# Links the libraries to the binary # # Links the libraries to the binary #