1
Fork 0
mirror of https://github.com/redstrate/Novus.git synced 2025-05-14 12:37:46 +00:00
novus/renderer/CMakeLists.txt
Joshua Goins 93bb7fec43 Begin adding support for drawing additional objects in the renderer
This will be used in the map editor to draw where objects are. It
doesn't draw anything yet, and can't until we get LGB support in
libphysis.
2025-05-13 15:19:11 -04:00

71 lines
No EOL
2.1 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) # for additional debug information in the GLSL
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
include/pass.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
shaders/debug.vert.spv
shaders/debug.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)
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
if (glslang_FOUND)
target_link_libraries(renderer
PUBLIC
glslang::SPIRV
glslang::glslang-default-resource-limits)
target_compile_definitions(renderer PRIVATE HAVE_GLSLANG)
endif ()
add_library(Novus::Renderer ALIAS renderer)