104 lines
2.6 KiB
CMake
104 lines
2.6 KiB
CMake
add_subdirectory(third_party)
|
|
|
|
set(SRC_FILES
|
|
"src/App.cpp"
|
|
|
|
"src/Graphics/BindlessSetManager.cpp"
|
|
"src/Graphics/Camera.cpp"
|
|
"src/Graphics/GfxDevice.cpp"
|
|
"src/Graphics/ImageCache.cpp"
|
|
"src/Graphics/ImageLoader.cpp"
|
|
"src/Graphics/ImmediateExecuter.cpp"
|
|
"src/Graphics/Init.cpp"
|
|
"src/Graphics/MaterialCache.cpp"
|
|
"src/Graphics/MeshCache.cpp"
|
|
"src/Graphics/Pipeline.cpp"
|
|
"src/Graphics/Renderer.cpp"
|
|
"src/Graphics/Swapchain.cpp"
|
|
"src/Graphics/Util.cpp"
|
|
|
|
"src/Graphics/Resources/GPUImage.cpp"
|
|
"src/Graphics/Resources/NBuffer.cpp"
|
|
|
|
"src/Graphics/Pipelines/MeshPipeline.cpp"
|
|
|
|
"src/Input/InputManager.cpp"
|
|
|
|
|
|
"src/FS/AssetFS.cpp"
|
|
)
|
|
|
|
add_library(destrum ${SRC_FILES})
|
|
|
|
add_library(destrum::destrum ALIAS destrum)
|
|
|
|
set_target_properties(destrum PROPERTIES
|
|
CXX_STANDARD 20
|
|
CXX_EXTENSIONS OFF
|
|
)
|
|
|
|
#target_add_extra_warnings(destrum)
|
|
|
|
target_include_directories(destrum PUBLIC "${CMAKE_CURRENT_LIST_DIR}/include")
|
|
|
|
target_link_libraries(destrum
|
|
PUBLIC
|
|
volk::volk_headers
|
|
vk-bootstrap::vk-bootstrap
|
|
GPUOpen::VulkanMemoryAllocator
|
|
|
|
glm::glm
|
|
nlohmann_json::nlohmann_json
|
|
spdlog::spdlog
|
|
stb::image
|
|
|
|
PRIVATE
|
|
freetype::freetype
|
|
)
|
|
|
|
target_compile_definitions(destrum
|
|
PUBLIC
|
|
VK_NO_PROTOTYPES
|
|
VMA_VULKAN_VERSION=1003000
|
|
# VOLK_DEFAULT_VISIBILITY # FIXME: doesn't work for some reason
|
|
)
|
|
|
|
if (WIN32)
|
|
if (BUILD_SHARED_LIBS)
|
|
target_link_libraries(destrum
|
|
PUBLIC SDL2::SDL2main SDL2::SDL2
|
|
)
|
|
else ()
|
|
target_link_libraries(destrum
|
|
PUBLIC SDL2::SDL2main SDL2::SDL2-static
|
|
)
|
|
endif ()
|
|
endif ()
|
|
|
|
target_compile_definitions(destrum
|
|
PUBLIC
|
|
GLM_FORCE_CTOR_INIT
|
|
GLM_FORCE_XYZW_ONLY
|
|
GLM_FORCE_EXPLICIT_CTOR
|
|
GLM_FORCE_DEPTH_ZERO_TO_ONE
|
|
GLM_ENABLE_EXPERIMENTAL
|
|
)
|
|
|
|
set(DESTRUM_SHADER_SRC "${CMAKE_CURRENT_LIST_DIR}/assets_src/shaders")
|
|
set(DESTRUM_SHADER_OUT "${CMAKE_CURRENT_LIST_DIR}/assets_runtime/shaders")
|
|
|
|
include(../cmake/compile_shaders.cmake)
|
|
|
|
compile_glsl_to_spv(destrum "${DESTRUM_SHADER_SRC}" "${DESTRUM_SHADER_OUT}" DESTRUM_SPV)
|
|
add_dependencies(destrum destrum_shaders)
|
|
#
|
|
#include(../cmake/compile_slang_shaders.cmake)
|
|
#
|
|
#compile_slang_shaders(
|
|
# TARGET compile_shaders
|
|
# SRC_DIR "${CMAKE_SOURCE_DIR}/destrum/assets_src/shaders"
|
|
# OUT_DIR "${CMAKE_SOURCE_DIR}/destrum/assets_runtime/shaders"
|
|
# EXTRA_ARGS -O3
|
|
# ALL
|
|
#)
|