You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Notes on supporting different platforms/compilers/dependencies/etc
Compiler support
Current (v3) versions of Catch2 require the compiler to support C++14.
We are generally willing to add some workarounds for compiler issues, as
long as the maintenance burden from these is not too big.
As it is hard to correctly estimate how much pain compiler-specific
workarounds will cause in the future, deciding when the maintenance burden
is too big is mostly vibes based.
Support for old compilers can be dropped without changing the major version,
if the compiler does not support C++14 properly. As an example, we already
dropped support for VS 2017, GCC 5, and 6 once, because they were blocking
progress on important changes. The support was later reintroduced, because
a simple workaround was found, but they might get dropped again.
Required CMake version
It is generally easy to install new CMake versions on all supported
platforms, but since Catch2 usually does not need new CMake features,
we can pick the minimum version off widely supported versions in Linux
repos.
At the time of writing, looking around on repology.com,
gives us these CMake versions for some relevant Linux distros:
Distro + version
CMake version in repo
Ubuntu 22.04 (previous LTS)
3.22.1
Ubuntu 24.04 (current LTS)
3.28.3
Debian 12 (current stable)
3.25.1
Rocky Linux 8
3.26.5
Rocky Linux 9
3.26.5
Centos Stream 8
3.18.2, newer in Appstreams
Centos 8
3.20.2
Centos Stream 9
3.26.5
Arch being a rolling distro, we can assume newest-or-close CMake.
Based on this, we can safely bump minimum CMake version to 3.20.
The text was updated successfully, but these errors were encountered:
Notes on supporting different platforms/compilers/dependencies/etc
Compiler support
Current (v3) versions of Catch2 require the compiler to support C++14.
We are generally willing to add some workarounds for compiler issues, as
long as the maintenance burden from these is not too big.
As it is hard to correctly estimate how much pain compiler-specific
workarounds will cause in the future, deciding when the maintenance burden
is too big is mostly vibes based.
Support for old compilers can be dropped without changing the major version,
if the compiler does not support C++14 properly. As an example, we already
dropped support for VS 2017, GCC 5, and 6 once, because they were blocking
progress on important changes. The support was later reintroduced, because
a simple workaround was found, but they might get dropped again.
Required CMake version
It is generally easy to install new CMake versions on all supported
platforms, but since Catch2 usually does not need new CMake features,
we can pick the minimum version off widely supported versions in Linux
repos.
At the time of writing, looking around on repology.com,
gives us these CMake versions for some relevant Linux distros:
Arch being a rolling distro, we can assume newest-or-close CMake.
Based on this, we can safely bump minimum CMake version to 3.20.
The text was updated successfully, but these errors were encountered: