From 7b882896f1770c30e07ab5a9392f0ccd70eb02f8 Mon Sep 17 00:00:00 2001 From: omigamedev Date: Tue, 2 Jun 2026 21:29:29 +0200 Subject: [PATCH] Move Windows link ownership to platform shell --- CMakeLists.txt | 32 +++++++++++++-------------- docs/modernization/build-inventory.md | 2 +- docs/modernization/roadmap.md | 3 ++- 3 files changed, 19 insertions(+), 18 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 87d721e..febf00f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -268,6 +268,21 @@ if(PP_BUILD_APP) target_link_libraries(pp_platform_windows PUBLIC panopainter_app + "${CMAKE_CURRENT_SOURCE_DIR}/libs/bugtrap-client/lib/BugTrapU-x64.lib" + "$<$:${CMAKE_CURRENT_SOURCE_DIR}/libs/curl-win/lib/dll-debug-x64/libcurl_debug.lib>" + "$<$>:${CMAKE_CURRENT_SOURCE_DIR}/libs/curl-win/lib/dll-release-x64/libcurl.lib>" + "${CMAKE_CURRENT_SOURCE_DIR}/libs/libyuv/lib/win/yuv.lib" + "${CMAKE_CURRENT_SOURCE_DIR}/libs/mp4v2/lib/win/libmp4v2.lib" + "${CMAKE_CURRENT_SOURCE_DIR}/libs/openh264/lib/openh264-2.0.0-win64.lib" + "${CMAKE_CURRENT_SOURCE_DIR}/libs/openvr/lib/win64/openvr_api.lib" + comdlg32 + gdi32 + opengl32 + ole32 + shell32 + shlwapi + user32 + wbemuuid PRIVATE pp_project_options pp_project_warnings) @@ -283,22 +298,7 @@ if(PP_BUILD_APP) PRIVATE pp_project_options pp_project_warnings - pp_platform_windows - "${CMAKE_CURRENT_SOURCE_DIR}/libs/bugtrap-client/lib/BugTrapU-x64.lib" - "$<$:${CMAKE_CURRENT_SOURCE_DIR}/libs/curl-win/lib/dll-debug-x64/libcurl_debug.lib>" - "$<$>:${CMAKE_CURRENT_SOURCE_DIR}/libs/curl-win/lib/dll-release-x64/libcurl.lib>" - "${CMAKE_CURRENT_SOURCE_DIR}/libs/libyuv/lib/win/yuv.lib" - "${CMAKE_CURRENT_SOURCE_DIR}/libs/mp4v2/lib/win/libmp4v2.lib" - "${CMAKE_CURRENT_SOURCE_DIR}/libs/openh264/lib/openh264-2.0.0-win64.lib" - "${CMAKE_CURRENT_SOURCE_DIR}/libs/openvr/lib/win64/openvr_api.lib" - comdlg32 - gdi32 - opengl32 - ole32 - shell32 - shlwapi - user32 - wbemuuid) + pp_platform_windows) set_target_properties(PanoPainter PROPERTIES VS_GLOBAL_CharacterSet "Unicode") diff --git a/docs/modernization/build-inventory.md b/docs/modernization/build-inventory.md index 270570e..4d2e408 100644 --- a/docs/modernization/build-inventory.md +++ b/docs/modernization/build-inventory.md @@ -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` | +| 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 | | 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 | diff --git a/docs/modernization/roadmap.md b/docs/modernization/roadmap.md index db0dc93..fac7bbb 100644 --- a/docs/modernization/roadmap.md +++ b/docs/modernization/roadmap.md @@ -144,7 +144,8 @@ option targets exist. The Windows desktop app builds through CMake as `PanoPainter`; the raw Visual Studio solution/project files were removed on 2026-05-31 by user decision. The root CMake Windows app graph now includes a `panopainter_app` composition target and `pp_platform_windows` shell target so -`PanoPainter` is only the executable/resource wrapper. Android arm64 now +`PanoPainter` is only the executable/resource wrapper; Windows and vendor link +dependencies now belong to the platform shell target. Android arm64 now configures and builds headless foundation/tool targets through the root CMake/NDK path. Non-Windows platform app/package files remain during Phase 6 alignment.