Decouple XCEditorCore from editor app target

This commit is contained in:
2026-04-28 00:38:53 +08:00
parent 2d91085567
commit b7c6a39bc0
4 changed files with 84 additions and 26 deletions

View File

@@ -105,6 +105,10 @@ Completed boundary cuts:
explicit app module include roots. It restores project panel, scene viewport,
viewport render-plan, viewport object-id picker, and app input-routing tests
without widening the include surface.
- `XCEditorCore` is now controlled by `XCENGINE_BUILD_XCUI_EDITOR_CORE`
instead of the executable-host switch. `XCENGINE_BUILD_XCUI_EDITOR_APP=OFF`
can still build the product core and the app-facing test targets when
renderer editor support is enabled.
- The old Win32 tab-drag-drop target test now covers the current reusable
`XCEditor/Docking/UIEditorDockHostTransfer.h` API through
`editor_windowing_phase1_tests`.
@@ -280,6 +284,8 @@ Completed follow-up:
## Phase 2: Introduce XCEditorCore
Status: completed and build-graph enforced.
Create:
```cmake
@@ -316,6 +322,19 @@ Important: do not hide Win32/D3D12 in `XCEditorCore` just to make the first
CMake edit easier. If a source file needs `windows.h`, it belongs in the host
side until a neutral interface exists.
Completed target-graph cut:
- `XCENGINE_BUILD_XCUI_EDITOR_CORE` controls `XCEditorCore` and defaults to
`ON`.
- `XCENGINE_BUILD_XCUI_EDITOR_APP` controls only the concrete executable host
target `XCEditor`.
- `XCEditor` requires `XCENGINE_BUILD_XCUI_EDITOR_CORE=ON`.
- When either the core library or executable host is enabled, the root build
defaults `XCENGINE_ENABLE_RENDERING_EDITOR_SUPPORT=ON` because editor core
owns viewport services that link renderer editor support.
- The host-off validation shape is:
`-DXCENGINE_BUILD_XCUI_EDITOR_APP=OFF -DXCENGINE_BUILD_XCUI_EDITOR_CORE=ON -DXCENGINE_ENABLE_RENDERING_EDITOR_SUPPORT=ON`.
## Phase 3: Restore App-Core And App Feature Tests
Status: completed for the initial app-core and app feature/viewport suites.
@@ -512,6 +531,16 @@ cmake --build build --config Debug --target editor_app_feature_tests
cmake --build build --config Debug --target editor_windowing_phase1_tests
```
To prove the product core boundary without the executable host, configure a
separate build directory with:
```powershell
cmake -S . -B build/editor_core_hostoff -DXCENGINE_BUILD_XCUI_EDITOR_APP=OFF -DXCENGINE_BUILD_XCUI_EDITOR_CORE=ON -DXCENGINE_ENABLE_RENDERING_EDITOR_SUPPORT=ON
cmake --build build/editor_core_hostoff --config Debug --target XCEditorCore
cmake --build build/editor_core_hostoff --config Debug --target editor_app_core_tests
cmake --build build/editor_core_hostoff --config Debug --target editor_app_feature_tests
```
When app smoke is available:
```powershell