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
Joshua Goins a7fc58f7b5 Improve Windows support
Graph now includes more libraries out of the box, similiar
to Prism.
2022-03-27 22:22:02 -04:00

114 lines
2.1 KiB
CMake
Executable file

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 17)
find_package(SDL2 REQUIRED)
find_package(Vulkan REQUIRED)
find_package(GLM REQUIRED)
find_package(OpenAL REQUIRED)
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
add_definitions(-DDEBUG)
endif()
set(ENGINE_SRC
src/renderer.cpp
src/worldpass.cpp
src/postpass.cpp
src/dofpass.cpp
src/skypass.cpp
src/shadowpass.cpp
src/config.cpp
src/stringutils.cpp
src/animationsystem.cpp
src/worldmanager.cpp
src/assetmanager.cpp
src/entityparser.cpp
src/smaapass.cpp
src/debugpass.cpp
src/audiosystem.cpp)
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
set(ENGINE_SRC
${ENGINE_SRC}
src/imguipass.cpp)
endif()
add_library(Engine
${ENGINE_SRC})
target_compile_options(Engine
PUBLIC
-fno-exceptions)
target_link_libraries(Engine
PUBLIC
SDL2::Main
Vulkan::Vulkan
assimp
nlohmann::json
stb::stb
SMAA::SMAA
opus
OpenAL::OpenAL)
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
target_link_libraries(Engine
PUBLIC
imgui::imgui)
endif()
target_include_directories(Engine
PUBLIC
include
${GLM_INCLUDE_DIRS})
add_executable(ITER
src/main.cpp)
target_link_libraries(ITER
PRIVATE
Engine)
add_shaders(ITER
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
shaders/edge.vert
shaders/edge.frag
shaders/blend.vert
shaders/blend.frag
shaders/sobel.vert
shaders/sobel.frag)
add_data(ITER
data/suzanne.obj
data/test.cim
data/bokeh.png
data/scene.obj
data/tile.jpg
data/graphics_presets.cfg
data/test.world
data/test.material
data/empty.world
data/player.obj
data/sphere.obj
data/matpreview.world
data/basic.material
data/maticon.png
data/music.opus)
add_subdirectory(tools)