添加windows构建适配,禁用ImGui多视口功能
This commit is contained in:
+69
-60
@@ -1,60 +1,69 @@
|
||||
# ============ 第三方库目标(Engine 的依赖) ============
|
||||
|
||||
# ImGui(docking 分支,vendored submodule)
|
||||
set(IMGUI_DIR ${CMAKE_SOURCE_DIR}/Lib/imgui)
|
||||
add_library(imgui STATIC
|
||||
${IMGUI_DIR}/imgui.cpp
|
||||
${IMGUI_DIR}/imgui_draw.cpp
|
||||
${IMGUI_DIR}/imgui_tables.cpp
|
||||
${IMGUI_DIR}/imgui_widgets.cpp
|
||||
# ${IMGUI_DIR}/imgui_demo.cpp # ShowDemoWindow 的实现(调试期保留)
|
||||
${IMGUI_DIR}/backends/imgui_impl_glfw.cpp
|
||||
${IMGUI_DIR}/backends/imgui_impl_vulkan.cpp
|
||||
)
|
||||
target_include_directories(imgui PUBLIC
|
||||
${IMGUI_DIR}
|
||||
${IMGUI_DIR}/backends)
|
||||
# 两个 backend 头文件分别依赖 GLFW / Vulkan 头
|
||||
target_link_libraries(imgui PUBLIC glfw Vulkan::Vulkan)
|
||||
|
||||
# Tracy(CPU/GPU 帧分析)
|
||||
add_library(tracy STATIC ${CMAKE_SOURCE_DIR}/Lib/tracy/public/TracyClient.cpp)
|
||||
target_include_directories(tracy PUBLIC ${CMAKE_SOURCE_DIR}/Lib/tracy/public)
|
||||
target_compile_definitions(tracy PUBLIC
|
||||
TRACY_ENABLE
|
||||
# 按需剖析:GPU context 宣告(GpuNewContext)与连接绑定——GUI 永远晚于
|
||||
# 程序启动连接,没有这个宏宣告消息被丢弃,GPU 时间线永远空白
|
||||
TRACY_ON_DEMAND)
|
||||
find_package(Threads REQUIRED)
|
||||
target_link_libraries(tracy PUBLIC Threads::Threads)
|
||||
|
||||
# ============ Engine ============
|
||||
|
||||
file(GLOB_RECURSE ENGINE_SOURCES CONFIGURE_DEPENDS src/*.cpp)
|
||||
add_library(Engine STATIC ${ENGINE_SOURCES})
|
||||
|
||||
# PhysicsDebugDraw 派生 Jolt::DebugRendererSimple:Jolt 以 -fno-rtti 编译
|
||||
#(有 key function 的基类 typeinfo 符号不存在),该 TU 必须同步关闭 RTTI,
|
||||
# 否则派生类 typeinfo 引用悬空符号(链接期 undefined reference)
|
||||
set_source_files_properties(src/Physics/PhysicsDebugDraw.cpp PROPERTIES
|
||||
COMPILE_OPTIONS "-fno-rtti")
|
||||
|
||||
target_include_directories(Engine PUBLIC
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/include
|
||||
# header-only 库:纯 include 路径
|
||||
${CMAKE_SOURCE_DIR}/Lib/entt/src
|
||||
${CMAKE_SOURCE_DIR}/Lib/VulkanMemoryAllocator/include)
|
||||
|
||||
target_link_libraries(Engine PUBLIC
|
||||
glfw
|
||||
glm::glm
|
||||
Vulkan::Vulkan
|
||||
spdlog::spdlog
|
||||
stb
|
||||
assimp::assimp
|
||||
meshoptimizer
|
||||
Jolt::Jolt
|
||||
imgui
|
||||
tracy)
|
||||
|
||||
target_compile_definitions(Engine PRIVATE VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1)
|
||||
# ============ 第三方库目标(Engine 的依赖) ============
|
||||
|
||||
# ImGui(docking 分支,vendored submodule)
|
||||
set(IMGUI_DIR ${CMAKE_SOURCE_DIR}/Lib/imgui)
|
||||
add_library(imgui STATIC
|
||||
${IMGUI_DIR}/imgui.cpp
|
||||
${IMGUI_DIR}/imgui_draw.cpp
|
||||
${IMGUI_DIR}/imgui_tables.cpp
|
||||
${IMGUI_DIR}/imgui_widgets.cpp
|
||||
# ${IMGUI_DIR}/imgui_demo.cpp # ShowDemoWindow 的实现(调试期保留)
|
||||
${IMGUI_DIR}/backends/imgui_impl_glfw.cpp
|
||||
${IMGUI_DIR}/backends/imgui_impl_vulkan.cpp
|
||||
)
|
||||
target_include_directories(imgui PUBLIC
|
||||
${IMGUI_DIR}
|
||||
${IMGUI_DIR}/backends)
|
||||
# 两个 backend 头文件分别依赖 GLFW / Vulkan 头
|
||||
target_link_libraries(imgui PUBLIC glfw Vulkan::Vulkan)
|
||||
|
||||
# Tracy(CPU/GPU 帧分析)
|
||||
add_library(tracy STATIC ${CMAKE_SOURCE_DIR}/Lib/tracy/public/TracyClient.cpp)
|
||||
target_include_directories(tracy PUBLIC ${CMAKE_SOURCE_DIR}/Lib/tracy/public)
|
||||
target_compile_definitions(tracy PUBLIC
|
||||
TRACY_ENABLE
|
||||
# 按需剖析:GPU context 宣告(GpuNewContext)与连接绑定——GUI 永远晚于
|
||||
# 程序启动连接,没有这个宏宣告消息被丢弃,GPU 时间线永远空白
|
||||
TRACY_ON_DEMAND)
|
||||
find_package(Threads REQUIRED)
|
||||
if(WIN32)
|
||||
target_link_libraries(tracy PUBLIC
|
||||
Threads::Threads
|
||||
ws2_32
|
||||
dbghelp
|
||||
secur32)
|
||||
else()
|
||||
target_link_libraries(tracy PUBLIC Threads::Threads)
|
||||
endif()
|
||||
|
||||
|
||||
# ============ Engine ============
|
||||
|
||||
file(GLOB_RECURSE ENGINE_SOURCES CONFIGURE_DEPENDS src/*.cpp)
|
||||
add_library(Engine STATIC ${ENGINE_SOURCES})
|
||||
|
||||
# PhysicsDebugDraw 派生 Jolt::DebugRendererSimple:Jolt 以 -fno-rtti 编译
|
||||
#(有 key function 的基类 typeinfo 符号不存在),该 TU 必须同步关闭 RTTI,
|
||||
# 否则派生类 typeinfo 引用悬空符号(链接期 undefined reference)
|
||||
set_source_files_properties(src/Physics/PhysicsDebugDraw.cpp PROPERTIES
|
||||
COMPILE_OPTIONS "-fno-rtti")
|
||||
|
||||
target_include_directories(Engine PUBLIC
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/include
|
||||
# header-only 库:纯 include 路径
|
||||
${CMAKE_SOURCE_DIR}/Lib/entt/src
|
||||
${CMAKE_SOURCE_DIR}/Lib/VulkanMemoryAllocator/include)
|
||||
|
||||
target_link_libraries(Engine PUBLIC
|
||||
glfw
|
||||
glm::glm
|
||||
Vulkan::Vulkan
|
||||
spdlog::spdlog
|
||||
stb
|
||||
assimp::assimp
|
||||
meshoptimizer
|
||||
Jolt::Jolt
|
||||
imgui
|
||||
tracy)
|
||||
|
||||
target_compile_definitions(Engine PRIVATE VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1)
|
||||
|
||||
Reference in New Issue
Block a user