Repository navigation
build: build against Maul Unicode 1.2.0 - #493
Conversation
siracozmen01
left a comment
There was a problem hiding this comment.
Review at 45b136a: ready, with one point not verified. No findings. Read, not run.
-
MAUL_WINDOW_UNICODE_VERSIONis the single source in CMakeLists.txt. Everything that names the dependency reads it:find_package(maul-unicode ${...} CONFIG QUIET)(line 85);- the FetchContent fallback's
GIT_TAG v${...}(95); - the installed package's
find_dependencyandmaul-window_UNICODE_VERSION(205-206); - the pkg-config
Requires.private(207); - the
unicode_versionpackage test's-DEXPECTED(282).
So nothing in CMakeLists.txt names 1.1.2 any more.
-
With 1.2.0 requested, a machine that has only an installed 1.1.x fails
find_package(a lower version never satisfies a request) and falls back to fetching v1.2.0. So a stale preinstalled copy cannot be picked up silently. -
The header difference you found (the version macros and
muniSegmentIterator_FindBreaksAround, added) touches none of the 16 names Window uses, and the data andMUNI_RESULTS_VERSIONare unchanged. So nothing in Window's results moves.
Not verified: other files that may name 1.1.2, outside CMakeLists.txt. That means docs (a building or dependencies page), samples or package manifests in this repository, and the CI image's own definition in the .github repository, if it preinstalls Maul Unicode. I cannot search the tree. A search for 1.1.2 and maul-unicode across the repository, and in the ci-cpp image's Dockerfile, would settle it. A stale copy in the image would only cost a fetch, given the fallback above, while a stale doc would mislead.
🤖 I have created a release *beep* *boop* --- ## [0.15.0](v0.14.0...v0.15.0) (2026-11-05) The iOS device check, that a window shows no flash against the launch screen before its first frame, is waived by the owner for this release, which ships on the iOS simulator suite: its iOS changes leave the launch and the first frame alone. ### Changed - **Breaking:** `mwinMessageButtons` is now `mwinMessageChoice`, its constants `mwin_buttonsOk`, `mwin_buttonsOkCancel` and `mwin_buttonsYesNo` are now `mwin_choiceOk`, `mwin_choiceOkCancel` and `mwin_choiceYesNo`, and `mwinMessageBoxDef.buttons` is now `mwinMessageBoxDef.choice`. The type is a choice of one, but its plural name read as a set of flags, as every other plural type in the API is ([#489](#489)). - **Breaking:** the test platform's `mwinGamepad_GetTestRumble` and `mwinGamepad_GetTestTriggerRumble` take `size_t* countOut` instead of `uint32_t* countOut`, as every other count the API reports is a `size_t` ([#490](#490)). - Maul Window builds against Maul Unicode 1.2.0, which gives the results 1.1.2 gave, so nothing a program gets from Maul Window changes. The installed CMake config and pkg-config file ask for Maul Unicode 1.2.0, and a build on a machine with only Maul Unicode 1.1.2 installed fetches 1.2.0 instead of using it ([#493](#493)). ### Fixed - On Windows, a generic HID gamepad with more than 64 buttons down at once, such as a stick or button box of 128 whose toggle switches stay down, reads its buttons. Before, the library asked Windows' parser for the buttons down with room for 64, the parser refused, and the report's buttons were dropped: each button kept the state of the last report that listed 64 or fewer, and a press or a release in between was lost ([#495](#495)).
Problem
Maul Window built against Maul Unicode 1.1.2. Maul Unicode 1.2.0 is out. maul-ui requires the Maul Unicode that Maul Window was built with to equal its own, so maul-ui can take 1.2.0 only once a Maul Window release builds against it (#491).
Change
MAUL_WINDOW_UNICODE_VERSIONinCMakeLists.txtis 1.2.0. The package looked for, the tag fetched without one, the version the installed config asks for (find_dependency), and the pkg-configRequires.privateall follow it.Nothing a program gets from Maul Window changes:
MUNI_RESULTS_VERSIONstays 2, in both tags'base.h.muniSegmentIterator_FindBreaksAround, which Maul Window does not call. The 16 names Maul Window reaches are declared the same in both tags.A machine with only Maul Unicode 1.1.2 installed now fetches 1.2.0 instead of using it.
Verification
maul-unicode-1.2.0.tar.gzandsbom.spdx.jsonpasssha256sum -c SHA256SUMS. The archive's files equal the tree of the tag v1.2.0 (79268ba), which the build fetches.linux-gcc-14in the CI image (ci-cpp:2026.10.7), fetching Maul Unicode 1.2.0 (itsbase.hsays 1.2.0, its checkout is at 79268ba): it builds with no error and no warning, and its 92 tests pass.tools/check.sh prin the CI image, fetching 1.2.0: the rules, formatting, the generated tables, the iOS runner against its stand-in, the documentation site, clang-tidy on the Release and Debug builds, thelinux-clang-20-asanpreset's 92 tests, and 10 seconds of fuzzing per target with no finding.Closes #491