Skip to content

v1.2.1

Latest

Choose a tag to compare

@stephenberry stephenberry released this 31 Jul 10:55

Fixes import std support, which is broken on current CMake releases in v1.2.0.

The library headers are unchanged from v1.2.0 — this is a build system release. If you use ut as headers only, there is nothing new for you.

Fixed

import std works across CMake releases again. v1.2.0 hardcoded a single experimental UUID valid for CMake 4.1/4.2, so UT_ENABLE_MODULES=ON failed to configure on CMake 4.3 and 4.4. The value is now chosen from the running CMake version, and an unrecognized release produces a message saying what to add rather than a confusing mismatch error. (#7, #9)

The gate can be overridden. Pass -DCMAKE_EXPERIMENTAL_CXX_IMPORT_STD=<uuid> to supply your own value — previously this was accepted and then silently ignored. (#12)

Added

Modules documentation for subproject consumers. CMake reads the gate while enabling CXX, so a project that pulls ut in with add_subdirectory() or FetchContent has already passed that point and must set the value before its own project() call. The README now covers this, with both forms and the error you get without it.

Build and CI

  • Workflows updated to ubuntu-26.04, gcc 14/15, clang 21/22, MSVC 14.50 (#9)
  • Third-party actions pinned to commit SHAs and token permissions narrowed to contents: read, with Dependabot added to keep the pins current
  • Dropped stale CMake presets

Upgrading

Drop-in for existing users. Module users on CMake 4.3 or newer should upgrade — v1.2.0 cannot configure at all. If you consume ut as a subproject, see "Consuming ut as a subproject" in the README.

Thanks

  • @DockedFerret800 for the CMake 4.3 compatibility fix (#7), the workflow modernization (#9), and for catching that the gate had to remain overridable (#11)
  • @mccakit for making the case (#10) that pinning one UUID cannot work across CMake releases, which is what led to the version-keyed selection used here