Split retained legacy engine target

This commit is contained in:
2026-06-02 21:53:17 +02:00
parent 6fda4d4a90
commit 455c91bf29
4 changed files with 60 additions and 16 deletions

View File

@@ -221,12 +221,48 @@ endif()
if(PP_BUILD_APP)
if(WIN32)
add_library(pp_legacy_app STATIC
${PP_LEGACY_APP_SOURCES}
add_library(pp_legacy_engine STATIC
${PP_LEGACY_ENGINE_SOURCES}
${PP_VENDOR_SOURCES})
target_link_libraries(pp_legacy_engine
PUBLIC
pp_project_options
PRIVATE
pp_renderer_api
pp_project_warnings)
if(TARGET pp_renderer_gl)
target_link_libraries(pp_legacy_engine PRIVATE pp_renderer_gl)
endif()
target_include_directories(pp_legacy_engine
PUBLIC
${PP_LEGACY_INCLUDE_DIRS})
target_compile_definitions(pp_legacy_engine
PUBLIC
ENUM_BITFIELDS_NOT_SUPPORTED
UNICODE
_UNICODE
_CRT_SECURE_NO_WARNINGS
_SCL_SECURE_NO_WARNINGS
_SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING
_SILENCE_STDEXT_ARR_ITERS_DEPRECATION_WARNING
_CONSOLE
WITH_CURL=1)
set_target_properties(pp_legacy_engine PROPERTIES
VS_GLOBAL_CharacterSet "Unicode")
target_precompile_headers(pp_legacy_engine PRIVATE src/pch.h)
set_source_files_properties(${PP_VENDOR_SOURCES}
PROPERTIES SKIP_PRECOMPILE_HEADERS ON)
add_library(pp_legacy_app STATIC
${PP_LEGACY_APP_SOURCES})
target_link_libraries(pp_legacy_app
PUBLIC
pp_legacy_engine
pp_project_options
PRIVATE
pp_renderer_api
@@ -254,8 +290,6 @@ if(PP_BUILD_APP)
VS_GLOBAL_CharacterSet "Unicode")
target_precompile_headers(pp_legacy_app PRIVATE src/pch.h)
set_source_files_properties(${PP_VENDOR_SOURCES}
PROPERTIES SKIP_PRECOMPILE_HEADERS ON)
add_library(pp_panopainter_ui STATIC
${PP_PANOPAINTER_UI_SOURCES})

View File

@@ -1,4 +1,4 @@
set(PP_LEGACY_APP_SOURCES
set(PP_LEGACY_ENGINE_SOURCES
src/abr.cpp
src/action.cpp
src/asset.cpp
@@ -8,14 +8,25 @@ set(PP_LEGACY_APP_SOURCES
src/canvas.cpp
src/canvas_actions.cpp
src/canvas_layer.cpp
src/canvas_modes.cpp
src/event.cpp
src/font.cpp
src/hmd.cpp
src/image.cpp
src/layout.cpp
src/log.cpp
src/mp4enc.cpp
src/rtt.cpp
src/serializer.cpp
src/settings.cpp
src/shader.cpp
src/shape.cpp
src/texture.cpp
src/util.cpp
src/wacom.cpp
)
set(PP_LEGACY_APP_SOURCES
src/canvas_modes.cpp
src/layout.cpp
src/node.cpp
src/node_border.cpp
src/node_button.cpp
@@ -36,14 +47,6 @@ set(PP_LEGACY_APP_SOURCES
src/node_text.cpp
src/node_text_input.cpp
src/pch.cpp
src/rtt.cpp
src/serializer.cpp
src/settings.cpp
src/shader.cpp
src/shape.cpp
src/texture.cpp
src/util.cpp
src/wacom.cpp
)
set(PP_PANOPAINTER_APP_SOURCES

View File

@@ -10,7 +10,7 @@ Keep it updated as platform paths move to shared CMake targets.
| Platform/Target | Current Entrypoint | Notes |
| --- | --- | --- |
| Windows desktop | Root `CMakeLists.txt`, preset `windows-msvc-default`; target preset `windows-vs2026-x64` retained for VS 2026 | Raw `.sln/.vcxproj` files removed on 2026-05-31; local machine currently uses Visual Studio 17 2022; `PanoPainter` now links through `pp_platform_windows` and `panopainter_app`, with Windows/vendor link dependencies owned by the platform shell, runtime payload deployment in `cmake/PanoPainterRuntime.cmake`, app orchestration/version metadata owned by `panopainter_app`, and app-specific modal/dialog/panel/canvas workflow nodes owned by `pp_panopainter_ui` |
| Windows desktop | Root `CMakeLists.txt`, preset `windows-msvc-default`; target preset `windows-vs2026-x64` retained for VS 2026 | Raw `.sln/.vcxproj` files removed on 2026-05-31; local machine currently uses Visual Studio 17 2022; `PanoPainter` now links through `pp_platform_windows` and `panopainter_app`, with Windows/vendor link dependencies owned by the platform shell, runtime payload deployment in `cmake/PanoPainterRuntime.cmake`, legacy rendering/canvas/asset/runtime sources contained by `pp_legacy_engine`, app orchestration/version metadata owned by `panopainter_app`, and app-specific modal/dialog/panel/canvas workflow nodes owned by `pp_panopainter_ui` |
| Windows AppX | `PanoPainterPackage/Package.appxmanifest`, `.wapproj` referenced by solution | Distribution packaging |
| macOS | `PanoPainter-OSX/` project files and `Info.plist` | Uses `NSOpenGLView` today |
| iOS | `PanoPainter/Info.plist`, related Apple sources | Uses OpenGL ES today |
@@ -398,6 +398,10 @@ Known local toolchain state:
Known warnings after the current CMake app build:
- Legacy code/vendor warnings under `/W4`.
- `pp_legacy_engine` intentionally contains retained vendor and legacy
runtime sources for now, so it concentrates existing JPEG, SQLite, Yoga,
poly2tri, Wacom, GLM/base64, and legacy canvas/render warnings until those
dependencies move to cleaner component or vcpkg ownership.
- `pp_panopainter_ui` currently surfaces existing legacy `Node`/`Serializer`
header and static-analysis warnings while it still depends on
`pp_legacy_app`; these should be reduced as the UI core/app UI boundary is

View File

@@ -147,6 +147,9 @@ option targets exist. The Windows desktop app builds through CMake as
`PanoPainter` is only the executable/resource wrapper; Windows and vendor link
dependencies now belong to the platform shell target, and Windows runtime
payload deployment lives behind `cmake/PanoPainterRuntime.cmake`.
`pp_legacy_engine` now contains the retained legacy rendering, canvas,
asset/file, brush, tablet, video, serialization, and low-level runtime sources
as an interim containment boundary while pure replacement components take over.
`panopainter_app` is now a real static target that owns app orchestration
sources, app version metadata, and version-header generation.
`pp_panopainter_ui` now owns app-specific modal, dialog, panel, canvas,