Clarify editor production target shape

This commit is contained in:
2026-04-27 12:41:21 +08:00
parent 31df10ffb6
commit ebe2e0cbc8

View File

@@ -13,14 +13,18 @@ change.
- `XCUIEditor` outputs `XCUIEditor.lib` and is the reusable, platform-neutral
editor UI layer. It links
against `XCEngine` and is covered mainly by `tests/UI/Editor/unit`.
- The production editor target shape is fixed at two targets:
`XCUIEditor`, the reusable editor UI library, and `XCEditor`, the product
executable. Production sources under `editor/app/**` belong directly to the
`XCEditor` executable target.
- `XCEditor` is built when `XCENGINE_BUILD_XCUI_EDITOR_APP=ON`; that mode
requires `XCENGINE_ENABLE_RENDERING_EDITOR_SUPPORT=ON`. The executable target
is named `XCEditor`, but its output name is `XCEngine`.
- The app target owns Win32 hosting, D3D12 window rendering, project/scene
runtime wiring, real editor panels, utility windows, and screenshots.
- The app is intentionally packaged as one executable target. Do not restore
internal app split targets such as `XCUIEditorAppLib`, `XCUIEditorAppCore`,
or `XCUIEditorHost` unless the product architecture is explicitly changed.
- The app is intentionally packaged as one executable target. App boundaries are
source-directory ownership inside `XCEditor`; the CMake target graph stays at
the two-target production shape above.
- Keep the CMake target named `XCEditor` so it does not collide with the engine
library target named `XCEngine`; keep the built executable output name as
`XCEngine`.
@@ -251,15 +255,16 @@ inside pure shell/widget code.
Shared manual-validation hosts should write captures under the active build
directory.
## Current Architecture Debt
## Current Architecture Notes
- `XCEditor` is the intentional single executable app target. App-layer
boundaries are maintained through directory ownership, namespaces, app/service
interfaces, focused reusable-layer tests, manual-validation hosts, and smoke
diagnostics, not through internal app static-library targets.
- Legacy app-split CMake targets have been removed. Do not reference
`XCUIEditorAppLib`, `XCUIEditorAppCore`, or `XCUIEditorHost` in new build
logic or tests.
- `XCEditor` is the intentional single executable app target. This is a fixed
production target shape, matching the repository's preference for coarse
product targets plus directory/module ownership. App-layer boundaries are
maintained through directory ownership, namespaces, app/service interfaces,
focused reusable-layer tests, manual-validation hosts, and smoke diagnostics.
- Legacy app-split CMake targets are retired architecture history. Current
build logic and tests use the two production editor targets above:
`XCUIEditor` and `XCEditor`.
- Existing source-tree capture history is present under some manual-validation
scenarios, but new captures should go to the build output directory.
- Runtime trace files are the main app smoke diagnostic. Avoid replacing