Clarify editor production target shape
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user