build: stop editor standalone from linking stale engine libs

This commit is contained in:
2026-03-31 22:37:44 +08:00
parent c17fcd450f
commit 6a38230f3f

View File

@@ -14,6 +14,11 @@ add_definitions(-DIMGUI_ENABLE_DOCKING)
include(FetchContent)
set(XCENGINE_SHARED_IMGUI_SOURCE_DIR "${XCENGINE_ROOT_DIR}/build/_deps/imgui-src")
if(EXISTS "${XCENGINE_SHARED_IMGUI_SOURCE_DIR}/imgui.cpp")
set(FETCHCONTENT_SOURCE_DIR_IMGUI "${XCENGINE_SHARED_IMGUI_SOURCE_DIR}")
endif()
FetchContent_Declare(
imgui
GIT_REPOSITORY https://gitee.com/mirrors/imgui.git
@@ -24,34 +29,24 @@ FetchContent_Declare(
FetchContent_MakeAvailable(imgui)
if(NOT TARGET XCEngine)
set(XCENGINE_VULKAN_SDK_HINT "$ENV{VULKAN_SDK}")
if(NOT EXISTS "${XCENGINE_VULKAN_SDK_HINT}/Lib/vulkan-1.lib")
file(GLOB XCENGINE_VULKAN_SDK_DIRS "D:/VulkanSDK/*")
if(XCENGINE_VULKAN_SDK_DIRS)
list(SORT XCENGINE_VULKAN_SDK_DIRS COMPARE NATURAL ORDER DESCENDING)
list(GET XCENGINE_VULKAN_SDK_DIRS 0 XCENGINE_VULKAN_SDK_HINT)
option(XCENGINE_ENABLE_MONO_SCRIPTING "Build the Mono-based C# scripting runtime" ON)
if(NOT DEFINED XCENGINE_MONO_ROOT_DIR OR XCENGINE_MONO_ROOT_DIR STREQUAL "")
file(GLOB XCENGINE_MONO_ROOT_DIR_CANDIDATES "${XCENGINE_ROOT_DIR}/*/Fermion/Fermion/external/mono")
if(XCENGINE_MONO_ROOT_DIR_CANDIDATES)
list(GET XCENGINE_MONO_ROOT_DIR_CANDIDATES 0 XCENGINE_MONO_ROOT_DIR_DEFAULT)
else()
set(XCENGINE_MONO_ROOT_DIR_DEFAULT "${XCENGINE_ROOT_DIR}/managed/mono")
endif()
set(
XCENGINE_MONO_ROOT_DIR
"${XCENGINE_MONO_ROOT_DIR_DEFAULT}"
CACHE PATH
"Path to the bundled Mono distribution used by the scripting runtime")
endif()
if(EXISTS "${XCENGINE_VULKAN_SDK_HINT}/Lib/vulkan-1.lib")
set(Vulkan_ROOT "${XCENGINE_VULKAN_SDK_HINT}")
list(APPEND CMAKE_PREFIX_PATH "${XCENGINE_VULKAN_SDK_HINT}")
endif()
find_package(Vulkan REQUIRED)
add_library(XCEngine STATIC IMPORTED GLOBAL)
set_target_properties(XCEngine PROPERTIES
IMPORTED_CONFIGURATIONS "Debug;Release;RelWithDebInfo;MinSizeRel"
IMPORTED_LOCATION_DEBUG "${XCENGINE_ENGINE_DIR}/build/Debug/XCEngine.lib"
IMPORTED_LOCATION_RELEASE "${XCENGINE_ENGINE_DIR}/build/Release/XCEngine.lib"
IMPORTED_LOCATION_RELWITHDEBINFO "${XCENGINE_ENGINE_DIR}/build/Release/XCEngine.lib"
IMPORTED_LOCATION_MINSIZEREL "${XCENGINE_ENGINE_DIR}/build/Release/XCEngine.lib"
INTERFACE_INCLUDE_DIRECTORIES
"${XCENGINE_ENGINE_DIR}/include;${XCENGINE_ENGINE_DIR}/include/XCEngine;${XCENGINE_ENGINE_DIR}/src;${XCENGINE_ENGINE_DIR}/third_party;${XCENGINE_ENGINE_DIR}/third_party/GLAD/include;${XCENGINE_ENGINE_DIR}/third_party/stb;${XCENGINE_ENGINE_DIR}/third_party/assimp/include"
INTERFACE_LINK_LIBRARIES
"${XCENGINE_ASSIMP_LIB};opengl32;Vulkan::Vulkan")
add_subdirectory("${XCENGINE_ENGINE_DIR}" "${CMAKE_CURRENT_BINARY_DIR}/engine_dependency")
endif()
set(IMGUI_SOURCES
@@ -80,6 +75,7 @@ add_executable(${PROJECT_NAME} WIN32
src/panels/SceneViewPanel.cpp
src/Viewport/SceneViewportPicker.cpp
src/Viewport/SceneViewportMoveGizmo.cpp
src/Viewport/SceneViewportRotateGizmo.cpp
src/Viewport/SceneViewportGrid.cpp
src/Viewport/SceneViewportInfiniteGridPass.cpp
src/Viewport/SceneViewportSelectionMaskPass.cpp