Skip to content

ci: add multiarch Linux builds (armv7, i386) and fix unit test precision - #32

Merged
kojix2 merged 4 commits into
kojix2:mainfrom
fr0stb1rd:main
Sep 27, 2026
Merged

kojix2 merged 4 commits into
kojix2:mainfrom
fr0stb1rd:main

Conversation

@fr0stb1rd

@fr0stb1rd fr0stb1rd commented Sep 26, 2026 •

Copy link
Copy Markdown

Summary

Adds multi-architecture CMake build and test matrix coverage for armv7 and i386 Linux targets using QEMU/Docker, and fixes floating-point precision assertion failures in table.c unit tests on 32-bit architectures.

Key Changes

  • CI Workflows (.github/workflows/cmake.yml):
    • Added cmake-linux-multiarch matrix job covering armv7 (via QEMU) and i386 architectures across static/shared and Release/Debug configurations using debian:12-slim Docker containers.
    • Integrated multiarch test runs (xvfb-run ctest), consumer builds, CPack zip generation, and artifact uploading.
    • Added cmake-linux-multiarch dependency to the release workflow trigger.
  • Release Archives (cmake/release-archives.txt):
    • Registered new armv7 and i386 zip build outputs (shared/static, debug/release).
  • Unit Tests (test/unit/table.c):
    • Replaced exact equality checks (==) with fabs() tolerance comparisons (1e-9) for floating-point color values to account for x87 extended precision (80-bit) handling on 32-bit (i386) architectures.

CI

fr0stb1rd and others added 4 commits September 26, 2026 18:41
Exact == on 0.1/0.2/0.3/0.4 fails on i386 where the x87 FPU keeps
intermediates in 80-bit extended precision. Use fabs() with 1e-9
tolerance like the color button test does.
@kojix2

kojix2 commented Sep 27, 2026

Copy link
Copy Markdown
Owner

Thanks for the pull request.
However, I don’t want to distribute these artifacts as part of a release.
So, before merging, I’ll make the following changes:

  • Limit armv7/i386 to CI testing only
  • Do not add them to cmake/release-archives.txt
  • Do not include them in the zips/*.zip files for GitHub Releases

@kojix2
kojix2 merged commit 282caaf into kojix2:main Sep 27, 2026
47 checks passed
@kojix2

kojix2 commented Sep 27, 2026

Copy link
Copy Markdown
Owner

If you don't mind, could you share some use cases showing how you use libui-ng with armv7/i386?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants