diff --git a/CMakeLists.txt b/CMakeLists.txt index 157a489..dd80541 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,26 +7,29 @@ set(GLFW_USE_WAYLAND ON) find_package(Vulkan REQUIRED) find_package(glfw3 3.3 REQUIRED) -# Suche nach dem glslc Compiler find_program(GLSLC glslc) if(NOT GLSLC) message(FATAL_ERROR "glslc compiler not found. Please install the Vulkan SDK.") 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 "${CMAKE_CURRENT_SOURCE_DIR}/shaders/*.vert" "${CMAKE_CURRENT_SOURCE_DIR}/shaders/*.frag" ) -set(SPIRV_SHADERS "") foreach(SHADER ${SHADER_FILES}) - # Dateiname extrahieren 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") - # Custom Command zum Kompilieren des Shaders add_custom_command( OUTPUT ${SPIRV} COMMAND ${GLSLC} ${SHADER} -o ${SPIRV} @@ -37,10 +40,8 @@ foreach(SHADER ${SHADER_FILES}) list(APPEND SPIRV_SHADERS ${SPIRV}) endforeach() -# Custom Target, das alle Shader kompiliert add_custom_target(compile_shaders ALL DEPENDS ${SPIRV_SHADERS}) -# Das eigentliche Executable add_executable(vulkan_test main.cpp vulkan/vulkan_app.cpp @@ -49,5 +50,4 @@ add_executable(vulkan_test 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)