Extract first PanoPainter UI target

This commit is contained in:
2026-06-02 21:45:49 +02:00
parent b80bd759aa
commit 3a1ca7a8e6
4 changed files with 26 additions and 7 deletions

View File

@@ -257,6 +257,18 @@ if(PP_BUILD_APP)
set_source_files_properties(${PP_VENDOR_SOURCES} set_source_files_properties(${PP_VENDOR_SOURCES}
PROPERTIES SKIP_PRECOMPILE_HEADERS ON) PROPERTIES SKIP_PRECOMPILE_HEADERS ON)
add_library(pp_panopainter_ui STATIC
${PP_PANOPAINTER_UI_SOURCES})
target_link_libraries(pp_panopainter_ui
PUBLIC
pp_legacy_app
pp_project_options
PRIVATE
pp_project_warnings)
target_precompile_headers(pp_panopainter_ui REUSE_FROM pp_legacy_app)
set_target_properties(pp_panopainter_ui PROPERTIES
VS_GLOBAL_CharacterSet "Unicode")
add_library(panopainter_app STATIC add_library(panopainter_app STATIC
${PP_PANOPAINTER_APP_SOURCES}) ${PP_PANOPAINTER_APP_SOURCES})
target_include_directories(panopainter_app target_include_directories(panopainter_app
@@ -265,6 +277,7 @@ if(PP_BUILD_APP)
target_link_libraries(panopainter_app target_link_libraries(panopainter_app
PUBLIC PUBLIC
pp_legacy_app pp_legacy_app
pp_panopainter_ui
pp_project_options pp_project_options
PRIVATE PRIVATE
pp_project_warnings) pp_project_warnings)

View File

@@ -25,12 +25,10 @@ set(PP_LEGACY_APP_SOURCES
src/log.cpp src/log.cpp
src/mp4enc.cpp src/mp4enc.cpp
src/node.cpp src/node.cpp
src/node_about.cpp
src/node_border.cpp src/node_border.cpp
src/node_button.cpp src/node_button.cpp
src/node_button_custom.cpp src/node_button_custom.cpp
src/node_canvas.cpp src/node_canvas.cpp
src/node_changelog.cpp
src/node_checkbox.cpp src/node_checkbox.cpp
src/node_color_quad.cpp src/node_color_quad.cpp
src/node_colorwheel.cpp src/node_colorwheel.cpp
@@ -46,8 +44,6 @@ set(PP_LEGACY_APP_SOURCES
src/node_image.cpp src/node_image.cpp
src/node_image_texture.cpp src/node_image_texture.cpp
src/node_input_box.cpp src/node_input_box.cpp
src/node_message_box.cpp
src/node_metadata.cpp
src/node_panel_animation.cpp src/node_panel_animation.cpp
src/node_panel_brush.cpp src/node_panel_brush.cpp
src/node_panel_color.cpp src/node_panel_color.cpp
@@ -67,7 +63,6 @@ set(PP_LEGACY_APP_SOURCES
src/node_text.cpp src/node_text.cpp
src/node_text_input.cpp src/node_text_input.cpp
src/node_tool_bucket.cpp src/node_tool_bucket.cpp
src/node_usermanual.cpp
src/node_viewport.cpp src/node_viewport.cpp
src/pch.cpp src/pch.cpp
src/rtt.cpp src/rtt.cpp
@@ -84,6 +79,14 @@ set(PP_PANOPAINTER_APP_SOURCES
src/version.cpp src/version.cpp
) )
set(PP_PANOPAINTER_UI_SOURCES
src/node_about.cpp
src/node_changelog.cpp
src/node_message_box.cpp
src/node_metadata.cpp
src/node_usermanual.cpp
)
set(PP_WINDOWS_PLATFORM_SOURCES set(PP_WINDOWS_PLATFORM_SOURCES
src/main.cpp src/main.cpp
) )

View File

@@ -10,7 +10,7 @@ Keep it updated as platform paths move to shared CMake targets.
| Platform/Target | Current Entrypoint | Notes | | 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`, and version metadata owned by `panopainter_app` | | 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`, version metadata owned by `panopainter_app`, and the first modal/help UI nodes owned by `pp_panopainter_ui` |
| Windows AppX | `PanoPainterPackage/Package.appxmanifest`, `.wapproj` referenced by solution | Distribution packaging | | Windows AppX | `PanoPainterPackage/Package.appxmanifest`, `.wapproj` referenced by solution | Distribution packaging |
| macOS | `PanoPainter-OSX/` project files and `Info.plist` | Uses `NSOpenGLView` today | | macOS | `PanoPainter-OSX/` project files and `Info.plist` | Uses `NSOpenGLView` today |
| iOS | `PanoPainter/Info.plist`, related Apple sources | Uses OpenGL ES today | | iOS | `PanoPainter/Info.plist`, related Apple sources | Uses OpenGL ES today |

View File

@@ -148,7 +148,10 @@ option targets exist. The Windows desktop app builds through CMake as
dependencies now belong to the platform shell target, and Windows runtime dependencies now belong to the platform shell target, and Windows runtime
payload deployment lives behind `cmake/PanoPainterRuntime.cmake`. payload deployment lives behind `cmake/PanoPainterRuntime.cmake`.
`panopainter_app` is now a real static target that owns app version metadata `panopainter_app` is now a real static target that owns app version metadata
and version-header generation. Android arm64 now configures and builds headless and version-header generation. The first `pp_panopainter_ui` target now owns a
small app-specific modal/help UI group (`NodeAbout`, `NodeChangelog`,
`NodeMessageBox`, `NodeMetadata`, and `NodeUserManual`) outside
`pp_legacy_app`. Android arm64 now configures and builds headless
foundation/tool targets through the root CMake/NDK path. Non-Windows platform foundation/tool targets through the root CMake/NDK path. Non-Windows platform
app/package files remain during Phase 6 alignment. app/package files remain during Phase 6 alignment.