Added entries to copy textures to cmake output dir
This commit is contained in:
+9
-9
@@ -7,26 +7,29 @@ set(GLFW_USE_WAYLAND ON)
|
|||||||
find_package(Vulkan REQUIRED)
|
find_package(Vulkan REQUIRED)
|
||||||
find_package(glfw3 3.3 REQUIRED)
|
find_package(glfw3 3.3 REQUIRED)
|
||||||
|
|
||||||
# Suche nach dem glslc Compiler
|
|
||||||
find_program(GLSLC glslc)
|
find_program(GLSLC glslc)
|
||||||
if(NOT GLSLC)
|
if(NOT GLSLC)
|
||||||
message(FATAL_ERROR "glslc compiler not found. Please install the Vulkan SDK.")
|
message(FATAL_ERROR "glslc compiler not found. Please install the Vulkan SDK.")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Alle Shader-Dateien im Verzeichnis ./shaders sammeln
|
# Copy textures into cmake output
|
||||||
|
file(GLOB TEXTURE_FILES
|
||||||
|
"${CMAKE_CURRENT_SOURCE_DIR}/textures/*"
|
||||||
|
)
|
||||||
|
foreach(TEXTURE ${TEXTURE_FILES})
|
||||||
|
file(COPY ${TEXTURE_FILES} DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/textures/")
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
# Copy shaders into cmake output
|
||||||
file(GLOB SHADER_FILES
|
file(GLOB SHADER_FILES
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/shaders/*.vert"
|
"${CMAKE_CURRENT_SOURCE_DIR}/shaders/*.vert"
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/shaders/*.frag"
|
"${CMAKE_CURRENT_SOURCE_DIR}/shaders/*.frag"
|
||||||
)
|
)
|
||||||
|
|
||||||
set(SPIRV_SHADERS "")
|
|
||||||
foreach(SHADER ${SHADER_FILES})
|
foreach(SHADER ${SHADER_FILES})
|
||||||
# Dateiname extrahieren
|
|
||||||
get_filename_component(SHADER_NAME ${SHADER} NAME)
|
get_filename_component(SHADER_NAME ${SHADER} NAME)
|
||||||
# Zielpfad für die kompilierten Shader im Build-Verzeichnis
|
|
||||||
set(SPIRV "${CMAKE_CURRENT_BINARY_DIR}/shaders/${SHADER_NAME}.spv")
|
set(SPIRV "${CMAKE_CURRENT_BINARY_DIR}/shaders/${SHADER_NAME}.spv")
|
||||||
|
|
||||||
# Custom Command zum Kompilieren des Shaders
|
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
OUTPUT ${SPIRV}
|
OUTPUT ${SPIRV}
|
||||||
COMMAND ${GLSLC} ${SHADER} -o ${SPIRV}
|
COMMAND ${GLSLC} ${SHADER} -o ${SPIRV}
|
||||||
@@ -37,10 +40,8 @@ foreach(SHADER ${SHADER_FILES})
|
|||||||
list(APPEND SPIRV_SHADERS ${SPIRV})
|
list(APPEND SPIRV_SHADERS ${SPIRV})
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
# Custom Target, das alle Shader kompiliert
|
|
||||||
add_custom_target(compile_shaders ALL DEPENDS ${SPIRV_SHADERS})
|
add_custom_target(compile_shaders ALL DEPENDS ${SPIRV_SHADERS})
|
||||||
|
|
||||||
# Das eigentliche Executable
|
|
||||||
add_executable(vulkan_test
|
add_executable(vulkan_test
|
||||||
main.cpp
|
main.cpp
|
||||||
vulkan/vulkan_app.cpp
|
vulkan/vulkan_app.cpp
|
||||||
@@ -49,5 +50,4 @@ add_executable(vulkan_test
|
|||||||
|
|
||||||
target_link_libraries(vulkan_test PRIVATE Vulkan::Vulkan glfw)
|
target_link_libraries(vulkan_test PRIVATE Vulkan::Vulkan glfw)
|
||||||
|
|
||||||
# Sicherstellen, dass die Shader vor dem Bauen des Executables kompiliert werden
|
|
||||||
add_dependencies(vulkan_test compile_shaders)
|
add_dependencies(vulkan_test compile_shaders)
|
||||||
|
|||||||
Reference in New Issue
Block a user