summaryrefslogtreecommitdiffhomepage
path: root/notes
diff options
context:
space:
mode:
authorAdam Malczewski <[email protected]>2026-06-12 19:11:59 +0900
committerAdam Malczewski <[email protected]>2026-06-12 19:11:59 +0900
commita21f705692595ea711a736e2ae9c256c1dde7b1e (patch)
tree2cb3e6380e65f9b584a1dea1cd43e1a127a4f56d /notes
parent6f45dc177540d6c6ae7596427209091d4c7adc20 (diff)
downloadunbox-a21f705692595ea711a736e2ae9c256c1dde7b1e.tar.gz
unbox-a21f705692595ea711a736e2ae9c256c1dde7b1e.zip
Slice 1: Meson skeleton — kernel links wlroots 0.20 from C++, RMLUi 6.2 vendored
Root meson.build (C++23, WLR_USE_UNSTABLE, ccache-detected) with RMLUi 6.2 as a wrap-file tarball built through the cmake module (no git submodules — settled decision) and doctest 2.5.2 from wrapdb. kernel unit: extern-"C" wlr.hpp wrapper (with the C99 [static N] array-param workaround documented in kernel.md), slice-1 probe contract, doctest suite (1/1 green). host-bin: composition root printing versions, exit 0. tasks.md slice 1 done.
Diffstat (limited to 'notes')
-rw-r--r--notes/plan.md3
1 files changed, 2 insertions, 1 deletions
diff --git a/notes/plan.md b/notes/plan.md
index 061eb6a..da0da54 100644
--- a/notes/plan.md
+++ b/notes/plan.md
@@ -50,7 +50,8 @@ solves), and the trigger that would reopen it.
| **wlroots 0.20**, system package, pinned, via ONE extern-"C" wrapper header | Matches running labwc (proven on this hardware); wlroots API churns between minors — the pin + single wrapper contains upgrades to one file | 0.21+ needed for a feature; bump = one dedicated slice |
| **wlr GLES2 renderer** for compositing; **sibling GLES 3.2 EGL context** (shared EGLDisplay) for RMLUi | wlroots' renderer is its own battle-tested choice; RMLUi's maintained backend needs GL3/GLES3; GLES 3.2 verified native. Older GL API ≠ faster: same crocus driver either way, and ES3 features (UBOs, VAOs, instancing) REDUCE CPU-side driver overhead — the actual bottleneck on this CPU | — |
| **NO ANGLE / translation layers** | ANGLE's Linux backend is Vulkan (no driver here; hasvk deprecated); ANGLE-on-GL just stacks on the Mesa we'd bypass; Chromium-scale build; tens of MB RSS; wlroots speaks system EGL | — |
-| **Meson + Ninja**, RMLUi via Meson's cmake subproject module; ccache; `build/` + `build-asan/` separate | Wayland-ecosystem native (wlroots/labwc/sway), first-class wayland-scanner codegen; RMLUi is CMake-only, the cmake module bridges it, built once | cmake-module friction exceeds ~a day of fighting → fall back to prebuilding RMLUi as a system-installed lib |
+| **Meson + Ninja**, RMLUi via Meson's cmake subproject module; ccache; `build/` + `build-asan/` separate | Wayland-ecosystem native (wlroots/labwc/sway), first-class wayland-scanner codegen; RMLUi is CMake-only, the cmake module bridges it, built once. PROVEN at slice 1: RMLUi 6.2 configures + builds via the cmake module first try | cmake-module friction on a future RMLUi bump → fall back to prebuilding RMLUi as a system-installed lib |
+| **Vendoring = Meson wrap-file tarballs, NEVER git submodules** (user decision) | Wraps pin by sha256, sources land in gitignored `subprojects/`, `packagecache/` allows pre-seeding; submodule UX rejected | — |
| **C++23, gcc 16** | Already installed; designated initializers ease wlroots struct setup; Hyprland proved years of C++-on-wlroots | — |
| **toml++** for `unbox.toml` config | Mirrors dispatch.toml convention; header-only | — |
| **doctest** for pure cores | Lightest compile cost of the mainstream frameworks — compile time IS the scarce resource here | — |