From ebe2e0cbc83adda0fd6e422524c87eae71c29cf8 Mon Sep 17 00:00:00 2001 From: ssdfasd <2156608475@qq.com> Date: Mon, 27 Apr 2026 12:41:21 +0800 Subject: [PATCH] Clarify editor production target shape --- editor/AGENTS.md | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/editor/AGENTS.md b/editor/AGENTS.md index 2f61838a..83c971a4 100644 --- a/editor/AGENTS.md +++ b/editor/AGENTS.md @@ -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