1
Fork 0
mirror of https://github.com/redstrate/Novus.git synced 2025-04-24 13:07:44 +00:00
novus/renderer/CMakeLists.txt
Joshua Goins 1aa7c8c6ee Start moving shader stuff into it's own dedicated class
This is generally abstract from the game renderer, and can be useful
elsewhere. It's also really big!
2024-05-10 16:14:33 -04:00

62 lines
No EOL
1.8 KiB
CMake

# SPDX-FileCopyrightText: 2023 Joshua Goins <josh@redstrate.com>
# SPDX-License-Identifier: CC0-1.0
find_package(spirv_cross_core REQUIRED)
find_package(spirv_cross_glsl REQUIRED)
find_package(SPIRV-Headers REQUIRED)
find_package(glslang REQUIRED)
add_library(renderer STATIC)
target_sources(renderer
PRIVATE
include/baserenderer.h
include/buffer.h
include/camera.h
include/device.h
include/drawobject.h
include/gamerenderer.h
include/rendermanager.h
include/scene.h
include/shadermanager.h
include/shaderstructs.h
include/simplerenderer.h
include/swapchain.h
include/texture.h
src/device.cpp
src/gamerenderer.cpp
src/imguipass.cpp
src/imguipass.h
src/rendermanager.cpp
src/shadermanager.cpp
src/simplerenderer.cpp
src/swapchain.cpp)
qt_add_resources(renderer
"shaders"
PREFIX "/"
FILES
shaders/dummy.frag.spv
shaders/imgui.frag.spv
shaders/imgui.vert.spv
shaders/mesh.frag.spv
shaders/mesh.vert.spv
shaders/skinned.vert.spv
shaders/blit.vert.spv
shaders/blit.frag.spv)
target_include_directories(renderer PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include)
target_link_libraries(renderer
PUBLIC
Qt6::Core
Vulkan::Vulkan
Physis::Physis
glm::glm
imgui
dxbc
spirv-cross-core
spirv-cross-glsl
glslang::SPIRV
glslang::glslang-default-resource-limits)
target_compile_definitions(renderer PUBLIC GLM_FORCE_RADIANS GLM_FORCE_DEPTH_ZERO_TO_ONE GLM_ENABLE_EXPERIMENTAL)
target_compile_options(renderer PUBLIC -fexceptions) # needed for spirv-cross and dxbc
add_library(Novus::Renderer ALIAS renderer)