Vix.cpp v2.1.5

Vix.cpp v2.1.5 is a release pipeline and cross-compilation stability release. This release fixes the Linux aarch64 build pipeline, improves dependency discovery during cross builds, adds missing dependencies for the utils module, and stabilizes the CI pipeline across Linux, macOS, and Windows. The focus of this release is release reliability. Vix should produce valid artifacts across supported platforms, including native and cross-compiled targets.

Linux aarch64 build pipeline

The main fix in Vix.cpp v2.1.5 is the Linux aarch64 release pipeline. The previous cross-compilation setup did not correctly resolve required system packages such as spdlog and fmt. This could cause configuration failures during release builds and prevent valid Linux aarch64 artifacts from being produced. Vix.cpp v2.1.5 updates the CMake toolchain configuration so cross builds can resolve the required dependencies more reliably.

Cross-build dependency discovery

This release improves dependency discovery during cross-compilation. The CMake setting:

CMAKE_FIND_ROOT_PATH_MODE_PACKAGE

was updated to allow both target and host package resolution where needed. This matters because cross builds often need to distinguish between packages required for the target environment and tools or metadata required from the host environment. If CMake is too restrictive, dependencies that exist in the build environment may still fail to resolve. Vix.cpp v2.1.5 makes this path more robust.

Missing utils dependencies

The aarch64 build environment now installs the missing spdlog and fmt dependencies required by the utils module. This prevents configuration failures caused by missing logging and formatting dependencies. The fix also aligns the aarch64 environment more closely with native builds, reducing differences between platform targets.

CI reliability

Vix.cpp v2.1.5 improves release reliability by stabilizing the CI pipeline across supported targets. The affected targets include Linux, macOS, and Windows. This release specifically supersedes v2.1.4, which was affected by a Linux aarch64 CI issue and may not produce valid release artifacts.

Cross-compilation consistency

This release improves consistency between native builds and cross builds. The dependency setup is now better aligned so the aarch64 release path behaves more like the standard platform builds. For a C++ runtime project, this is important because release artifacts must be reproducible and trustworthy across every supported architecture.

Highlights

  • Fixed the Linux aarch64 build pipeline.
  • Updated CMake toolchain configuration for cross-compilation.
  • Improved resolution of spdlog and fmt during cross builds.
  • Updated CMAKE_FIND_ROOT_PATH_MODE_PACKAGE.
  • Allowed both target and host package resolution where needed.
  • Added missing spdlog dependency to the aarch64 build environment.
  • Added missing fmt dependency to the aarch64 build environment.
  • Fixed utils module configuration failures in aarch64 builds.
  • Improved release reliability across Linux, macOS, and Windows.
  • Improved consistency between native and cross builds.
  • Superseded the broken v2.1.4 release pipeline.

Compatibility

Vix.cpp v2.1.5 introduces no breaking changes. Existing projects remain compatible. The main difference is release stability: Linux aarch64 artifacts should now be produced through a working pipeline with the required dependencies available during configuration.

Notes

Vix.cpp v2.1.4 was affected by a Linux aarch64 CI issue and may not produce valid release artifacts. Vix.cpp v2.1.5 supersedes v2.1.4 with a working release pipeline. This release is important because architecture support is only meaningful when release artifacts are built, validated, and distributed reliably.