Archived
1
Fork 0
This repository has been archived on 2025-04-12. You can view files and clone it, but cannot push or open issues or pull requests.
graph/CMakeLists.txt

95 lines
2.1 KiB
CMake

cmake_minimum_required(VERSION 3.1)
project(Graph)
list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
add_subdirectory(3rdparty)
include(cmake/BuildShaders.cmake)
include(cmake/CopyData.cmake)
set(CMAKE_CXX_STANDARD 14)
find_package(SDL2 REQUIRED)
find_package(Vulkan REQUIRED)
find_package(assimp REQUIRED)
find_package(glm REQUIRED)
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
add_definitions(-DDEBUG)
endif()
if(APPLE AND NOT TARGET SDL2::SDL2)
add_library(SDL2::SDL2 UNKNOWN IMPORTED)
set_target_properties(SDL2::SDL2 PROPERTIES
IMPORTED_LOCATION "${SDL2_LIBDIR}/libSDL2.dylib"
INTERFACE_INCLUDE_DIRECTORIES ${SDL2_INCLUDE_DIRS})
endif()
# workaround for linking dbus/glib ourselves
if(UNIX AND NOT APPLE)
set_target_properties(SDL2::SDL2 PROPERTIES
IMPORTED_LINK_INTERFACE_LIBRARIES_NOCONFIG "")
endif()
if(NOT TARGET assimp::assimp)
add_library(assimp::assimp UNKNOWN IMPORTED)
find_library(ASSIMP_IMPORTED_PATH ${ASSIMP_LIBRARIES}
PATHS
${ASSIMP_LIBRARY_DIRS})
set_target_properties(assimp::assimp PROPERTIES
IMPORTED_LOCATION ${ASSIMP_IMPORTED_PATH})
set_target_properties(assimp::assimp PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES ${ASSIMP_INCLUDE_DIRS})
endif()
add_executable(Graph
src/main.cpp
src/renderer.cpp
src/worldpass.cpp
src/postpass.cpp
src/dofpass.cpp
src/imguipass.cpp
src/skypass.cpp
src/shadowpass.cpp
src/config.cpp)
target_compile_options(Graph
PUBLIC
-fno-exceptions
-fno-rtti)
target_link_libraries(Graph
PUBLIC
SDL2::SDL2
Vulkan::Vulkan
assimp::assimp
nlohmann::json
stb::stb
imgui::imgui)
target_include_directories(Graph
PUBLIC
include
PRIVATE
${GLM_INCLUDE_DIRS})
add_shaders(Graph
shaders/mesh.vert
shaders/mesh.frag
shaders/post.vert
shaders/post.frag
shaders/dof.vert
shaders/dof.frag
shaders/imgui.vert
shaders/imgui.frag
shaders/sky.vert
shaders/sky.frag
shaders/shadow.vert)
add_data(Graph
data/suzanne.obj
data/test.cim
data/bokeh.png
data/scene.obj
data/tile.jpg
data/graphics_presets.cfg)