image::snap/gui/CMake_Logo_wide.svg[CMake]
This is the snap for CMake, a cross-platform, open-source build system generator.
image::https://snapcraft.io/cmake/badge.svg[link="https://snapcraft.io/cmake"]
== Supported Architectures
Starting with the CMake 3.27 release series, snap packages are essentially just a wrapper around the official CMake binary releases from Kitware.
Snap packages are only provided for the architectures that have an official Kitware release.
Currently, that is only amd64
and arm64
(Kitware releases call these x86_64
and aarch64
respectively).
For CMake 3.27 onward, these will be the only architectures for which new snap packages will be created.
For CMake 3.26 and earlier, snap packages were built using the snapcraft remote build service for architectures amd64
, arm64
, armhf
, ppc64el
, s390x
and i386
.
These snaps had some differences to the official packages, mostly due to the way Qt was built and incorporated into the snap building process.
These older snaps will continue to be available for all architectures, but armhf
, ppc64el
, s390x
and i386
will not receive any updates for CMake 3.27 and later.
== Release Instructions
Each CMake feature release has its own corresponding branch in this repository.
These branches follow the naming convention release/X.Y
.
When an official CMake release is made (including release candidates), create or checkout the branch tracking that feature release.
The link:.github/workflows/build-snap-packages.yml[GitHub workflow file] must be updated with the appropriate feature release version and publishing track for that branch and version.
The other CMake release version details in that file will determine the version of the snap that is built.
Only tagged releases will upload and publish snaps.
Set the release track to candidate
for release candidates, or stable
for regular releases.
CI jobs only publish snap packages to the specified release track.
If publishing for the latest feature release, an extra manual step is required.
The latest
channel needs to be updated in the https://snapcraft.io/cmake/releases[Snapcraft Releases] area (login required).
This should be a simple matter of promoting the just-published snaps to the relevant channel (latest/candidate
or latest/stable
).
If this is the first regular release after previous release candidates, also close the latest/candidate
channel after promoting to latest/stable
.
The candidate channel will then forward to the latest stable release, which ensures anyone tracking the candidate channel moves up to the stable release on their next update.