add_subdirectory(third_party) set(SRC_FILES "src/App.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/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/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 #)