cmake_minimum_required(VERSION 3.1)
project(Graph)
list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
set(CMAKE_CXX_STANDARD 14)
find_package(SDL2 REQUIRED)
find_package(Vulkan REQUIRED)
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
add_definitions(-DDEBUG)
endif()
add_executable(Graph
src/main.cpp
src/renderer.cpp
src/worldpass.cpp)
target_link_libraries(Graph PUBLIC SDL2::SDL2 SDL2::SDL2main ${Vulkan_LIBRARY})
target_include_directories(Graph PUBLIC include ${Vulkan_INCLUDE_DIRS})
macro(compile_shader src)
add_custom_command(
OUTPUT ${src}.spv
COMMAND glslangValidator -V ${CMAKE_CURRENT_SOURCE_DIR}/shaders/${src} -o ${CMAKE_CURRENT_SOURCE_DIR}/build/${src}.spv
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/shaders/${src}
)
list(APPEND SPV_FILES ${src}.spv)
endmacro()
compile_shader(triangle.vert)
compile_shader(triangle.frag)
add_custom_target(BuildShaders DEPENDS ${SPV_FILES})
add_dependencies(Graph BuildShaders)