Expose platform checks as CMake targets
This commit is contained in:
@@ -79,6 +79,7 @@ powershell -ExecutionPolicy Bypass -File scripts\automation\package-smoke.ps1 -P
|
||||
powershell -ExecutionPolicy Bypass -File scripts\automation\package-smoke.ps1 -ReadinessOnly
|
||||
powershell -ExecutionPolicy Bypass -File scripts\automation\package-smoke.ps1 -ReadinessOnly -AndroidNativeChecks -PackageKinds android-standard-apk,android-quest-apk,android-focus-apk
|
||||
cmake --build --preset windows-msvc-default --config Debug --target panopainter_android_native_package_smoke
|
||||
cmake --build --preset windows-msvc-default --config Debug --target panopainter_platform_build_android_assets
|
||||
cmake --fresh --preset windows-clangcl-asan
|
||||
python scripts/dev/clangd_nav.py symbols --file src/app_core/brush_ui.h --name execute_brush
|
||||
python scripts/dev/clangd_nav.py symbols --file src/app_core/brush_ui.h --name-regex "execute_.*preset"
|
||||
@@ -174,6 +175,7 @@ powershell -ExecutionPolicy Bypass -File scripts\automation\apple-remote-build.p
|
||||
and shell wrapper defaults include every current CMake test executable plus
|
||||
the required component and `pano_cli` targets, and that both wrappers default
|
||||
to the standard arm64/x64, Quest arm64, and Focus/Wave arm64 Android presets.
|
||||
It also guards the root CMake platform automation target names.
|
||||
- `package-smoke.ps1 -ReadinessOnly` and `package-smoke.sh --readiness-only`
|
||||
emit the Windows AppX, Android standard/Quest/Focus APK, Apple bundle, and
|
||||
WebGL package readiness matrix without first building an app artifact. The
|
||||
@@ -194,6 +196,12 @@ powershell -ExecutionPolicy Bypass -File scripts\automation\apple-remote-build.p
|
||||
`panopainter_android_native_package_smoke`. These targets call the automation
|
||||
scripts from CMake but do not convert APK/AppX/Apple/WebGL package outputs to
|
||||
root CMake package targets yet.
|
||||
- Root CMake exposes non-default platform validation targets:
|
||||
`panopainter_platform_build_headless`,
|
||||
`panopainter_platform_build_android_assets`, and
|
||||
`panopainter_platform_build_apple_remote`. These targets call the existing
|
||||
platform automation scripts from CMake and keep platform validation discoverable
|
||||
from the CMake target graph while app/package target migration remains open.
|
||||
- Root CMake exposes named `fuzz` and `stress` CTest presets. `fuzz` currently
|
||||
runs deterministic parser/serializer edge tests for binary streams, image
|
||||
metadata, PPI, stroke scripts, and layout XML; `stress` currently runs the
|
||||
|
||||
@@ -275,6 +275,13 @@ agent or engineer to remove them without reconstructing context from chat.
|
||||
calls the package-smoke Android native gate from CMake, validates the current
|
||||
latest SDK-managed NDK/CMake pair, and still reports APK outputs as blocked
|
||||
until root CMake owns real package targets.
|
||||
- 2026-06-05: DEBT-0009 was narrowed again. Root CMake now exposes
|
||||
non-default platform-build automation targets for the default headless sweep,
|
||||
Android root CMake asset validation across standard/Quest/Focus presets, and
|
||||
remote Apple compile validation. The Android target validated `pp_assets`
|
||||
across Android arm64/x64, Quest arm64, and Focus/Wave arm64 with the latest
|
||||
SDK-managed NDK/CMake pair. The platform-build wrapper defaults also include
|
||||
`pp_app_core_app_dialog_tests` again, so the target-matrix self-test is green.
|
||||
- 2026-06-04: DEBT-0036 was narrowed again. Canvas stroke commit,
|
||||
thumbnail, and object-draw history paths now query saved blend state through
|
||||
tested `pp_renderer_gl` capability-state dispatch; CanvasLayer equirect
|
||||
@@ -298,7 +305,7 @@ agent or engineer to remove them without reconstructing context from chat.
|
||||
| DEBT-0005 | Open | Modernization | Temporary local CTest harness is used before Catch2 is wired through vcpkg | `vcpkg` is not currently on PATH, but headless tests need to run now | `ctest --preset desktop-fast --build-config Debug` | Replace `tests/test_harness.h` tests with Catch2 tests once vcpkg toolchain/presets are validated |
|
||||
| DEBT-0007 | Open | Modernization | `vcpkg.json` and `windows-msvc-vcpkg-headless` are validated for the headless Windows component matrix, but app targets still use vendored libraries and Android/Apple triplets are not proven | Dependency migration must stay incremental while SDK/patched/vendor dependencies remain in use | `$env:VCPKG_ROOT="C:\Program Files\Microsoft Visual Studio\2022\Community\VC\vcpkg"; cmake --preset windows-msvc-vcpkg-headless`; `ctest --preset desktop-fast-vcpkg --build-config Debug` | Component targets consume vcpkg packages where reliable and desktop app, Android, and Apple triplets are validated or explicitly documented as permanent vendor exceptions |
|
||||
| DEBT-0008 | Open | Modernization | `windows-msvc-default` preset is used for local validation because the VS 2026 generator is not installed here | The target VS 2026 preset must remain, but this machine configures with Visual Studio 17 2022 | `cmake --preset windows-msvc-default`; `ctest --preset desktop-fast --build-config Debug` | Validate `windows-vs2026-x64` on a machine with Visual Studio 2026 installed and make it the default Windows validation preset |
|
||||
| DEBT-0009 | Open | Modernization | Android root CMake validation currently builds headless targets only, while retained standard/Quest/Focus package CMake paths now have a refreshed CMake 3.10/C++23 baseline outside root CMake; automation selects the newest installed SDK Manager NDK/CMake pair before configure; root CMake exposes non-default retained native package validation targets | Platform app entrypoints still live in legacy Gradle/CMake projects and need Phase 6 alignment | `powershell -ExecutionPolicy Bypass -File scripts\automation\platform-build.ps1 -Presets android-arm64`; `cmake --build --preset android-x64`; `cmake --build --preset android-quest-arm64`; `cmake --build --preset android-focus-arm64`; `powershell -ExecutionPolicy Bypass -File scripts\automation\android-legacy-package-build.ps1 -Packages standard`; `powershell -ExecutionPolicy Bypass -File scripts\automation\android-legacy-package-build.ps1 -Packages quest,focus -ConfigureOnly`; `powershell -ExecutionPolicy Bypass -File scripts\automation\package-smoke.ps1 -ReadinessOnly -AndroidNativeChecks -PackageKinds android-standard-apk,android-quest-apk,android-focus-apk`; `cmake --build --preset windows-msvc-default --config Debug --target panopainter_android_native_package_smoke` | Android standard, Quest, and Focus/Wave package targets consume shared component targets and have package smoke commands |
|
||||
| DEBT-0009 | Open | Modernization | Android root CMake validation currently builds headless targets only, while retained standard/Quest/Focus package CMake paths now have a refreshed CMake 3.10/C++23 baseline outside root CMake; automation selects the newest installed SDK Manager NDK/CMake pair before configure; root CMake exposes non-default platform-build and retained native package validation targets | Platform app entrypoints still live in legacy Gradle/CMake projects and need Phase 6 alignment | `powershell -ExecutionPolicy Bypass -File scripts\automation\platform-build.ps1 -Presets android-arm64`; `cmake --build --preset android-x64`; `cmake --build --preset android-quest-arm64`; `cmake --build --preset android-focus-arm64`; `cmake --build --preset windows-msvc-default --config Debug --target panopainter_platform_build_android_assets`; `powershell -ExecutionPolicy Bypass -File scripts\automation\android-legacy-package-build.ps1 -Packages standard`; `powershell -ExecutionPolicy Bypass -File scripts\automation\android-legacy-package-build.ps1 -Packages quest,focus -ConfigureOnly`; `powershell -ExecutionPolicy Bypass -File scripts\automation\package-smoke.ps1 -ReadinessOnly -AndroidNativeChecks -PackageKinds android-standard-apk,android-quest-apk,android-focus-apk`; `cmake --build --preset windows-msvc-default --config Debug --target panopainter_android_native_package_smoke` | Android standard, Quest, and Focus/Wave package targets consume shared component targets and have package smoke commands |
|
||||
| DEBT-0010 | Open | Modernization | `pp_document` is a pure layer/frame/document/undo-history model with alpha-lock metadata, snapshot construction, per-layer frame metadata, renderer-free RGBA8 face payload storage, snapshot-embedded face-payload validation, renderer-free alpha8 selection-mask storage, PPI import/export helpers, and stroke-script-to-face-payload CLI automation, but it is not yet wired to legacy `Canvas`, legacy save, or legacy action commands | Keep extraction incremental while preserving app behavior | `ctest --preset desktop-fast --build-config Debug`; `pano_cli create-document --width 64 --height 32 --layers 2`; `pano_cli load-project --path tests\data\projects\minimal-project.ppi`; `pp_document_tests`; `pp_document_ppi_import_tests`; `pp_document_ppi_export_tests`; `pano_cli_simulate_document_edits_smoke`; `pano_cli_simulate_document_export_smoke`; `pano_cli_save_document_project_roundtrip_smoke`; `pano_cli_apply_stroke_script_roundtrip_smoke`; `pano_cli_apply_stroke_script_rejects_tiny_canvas` | Legacy document behavior is represented by `pp_document` tests and the app consumes it through a boundary/facade |
|
||||
| DEBT-0011 | Open | Modernization | `package-smoke` validates the Windows CMake app artifact and reports a structured package readiness matrix for Windows AppX, Android standard/Quest/Focus APKs, Apple bundles, and WebGL output; retained Android package native CMake paths are refreshed, use latest SDK-managed NDK/CMake selection, and can be run from `package-smoke.ps1 -AndroidNativeChecks` or the root CMake `panopainter_android_native_package_smoke` target, but APK outputs are still `blocked` because root CMake package targets do not exist yet | Platform package targets are not migrated to root CMake yet | `powershell -ExecutionPolicy Bypass -File scripts\automation\package-smoke.ps1 -Preset windows-msvc-default -Configuration Debug`; `powershell -ExecutionPolicy Bypass -File scripts\automation\package-smoke.ps1 -ReadinessOnly -AndroidNativeChecks -PackageKinds android-standard-apk,android-quest-apk,android-focus-apk`; `cmake --build --preset windows-msvc-default --config Debug --target panopainter_android_native_package_smoke`; `python scripts/dev/check_package_smoke_readiness.py`; `bash -n scripts/automation/package-smoke.sh` | Package-smoke builds and validates Windows AppX, Android APK variants, Apple bundles, and WebGL output where local toolchains are present |
|
||||
| DEBT-0012 | Open | Modernization | `pp_ui_core` uses vcpkg tinyxml2 on `windows-msvc-vcpkg-headless`, but retains `pp_vendor_tinyxml2` for default and unproven platform presets | Mobile/AppX/Apple triplets and app packaging still need validation before removing the vendored fallback | `ctest --preset desktop-fast-vcpkg --build-config Debug`; `ctest --preset desktop-fast --build-config Debug`; `powershell -ExecutionPolicy Bypass -File scripts\automation\platform-build.ps1 -Presets android-arm64` | All supported presets consume vcpkg tinyxml2 or document a permanent vendored exception |
|
||||
|
||||
@@ -1383,7 +1383,13 @@ keeps the PowerShell and shell wrapper defaults aligned with every current
|
||||
CMake test executable plus required component targets, and now verifies the
|
||||
default Android preset set covers standard arm64/x64, Quest arm64, and
|
||||
Focus/Wave arm64. The shell wrapper now mirrors the PowerShell wrapper's
|
||||
multi-preset behavior and reports one structured result array.
|
||||
multi-preset behavior and reports one structured result array. Root CMake now
|
||||
also exposes non-default platform validation targets:
|
||||
`panopainter_platform_build_headless`,
|
||||
`panopainter_platform_build_android_assets`, and
|
||||
`panopainter_platform_build_apple_remote`; the platform-build self-test guards
|
||||
those target names and the wrapper matrix now includes
|
||||
`pp_app_core_app_dialog_tests` with the rest of the CMake test executables.
|
||||
`package-smoke` now emits a structured package readiness matrix for Windows
|
||||
AppX, Android standard/Quest/Focus APKs, Apple bundles, and WebGL output, with
|
||||
blocked prerequisites tied to DEBT-0011. It also has a readiness-only mode for
|
||||
@@ -2393,6 +2399,13 @@ Results:
|
||||
`cmake --build --preset windows-msvc-default --config Debug --target
|
||||
panopainter_android_native_package_smoke` validates the latest SDK-managed
|
||||
NDK/CMake pair and reports the still-blocked APK package state.
|
||||
- Root CMake now exposes platform validation targets for the default headless
|
||||
platform-build sweep, the Android standard/Quest/Focus root CMake asset
|
||||
component sweep, and the remote Apple compile gate. `cmake --build --preset
|
||||
windows-msvc-default --config Debug --target
|
||||
panopainter_platform_build_android_assets` validated `pp_assets` across
|
||||
Android arm64, Android x64, Quest arm64, and Focus/Wave arm64 with the latest
|
||||
SDK-managed NDK/CMake pair.
|
||||
- Desktop VR drawing now routes generic OpenGL scissor/depth/blend state,
|
||||
blend/depth state snapshots and restores, depth clears, active texture units,
|
||||
and fallback 2D texture unbinds through tested renderer GL backend dispatch;
|
||||
|
||||
Reference in New Issue
Block a user