42 lines
1.1 KiB
CMake
42 lines
1.1 KiB
CMake
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)
|
|
find_package(assimp REQUIRED)
|
|
|
|
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
|
add_definitions(-DDEBUG)
|
|
endif()
|
|
|
|
add_executable(Graph
|
|
src/main.cpp
|
|
src/renderer.cpp
|
|
src/worldpass.cpp
|
|
src/postpass.cpp)
|
|
target_link_libraries(Graph PUBLIC SDL2::SDL2 SDL2::SDL2main Vulkan::Vulkan assimp::assimp)
|
|
target_include_directories(Graph PUBLIC include)
|
|
|
|
macro(compile_shader src)
|
|
add_custom_command(
|
|
OUTPUT ${src}.spv
|
|
COMMAND glslangValidator -V ${CMAKE_CURRENT_SOURCE_DIR}/shaders/${src} -o ${CMAKE_CURRENT_BINARY_DIR}/${src}.spv
|
|
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/shaders/${src}
|
|
)
|
|
|
|
list(APPEND SPV_FILES ${src}.spv)
|
|
endmacro()
|
|
|
|
compile_shader(triangle.vert)
|
|
compile_shader(triangle.frag)
|
|
compile_shader(post.vert)
|
|
compile_shader(post.frag)
|
|
|
|
add_custom_target(BuildShaders DEPENDS ${SPV_FILES})
|
|
add_dependencies(Graph BuildShaders)
|
|
|
|
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/data/suzanne.obj ${CMAKE_CURRENT_BINARY_DIR}/suzanne.obj COPYONLY)
|