Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Notes on supporting different platforms/compilers/dependencies/etc #2943

Closed
horenmar opened this issue Dec 27, 2024 · 0 comments
Closed

Notes on supporting different platforms/compilers/dependencies/etc #2943

horenmar opened this issue Dec 27, 2024 · 0 comments
Labels
Development Issues related to further development of Catch2

Comments

@horenmar
Copy link
Member

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.

@horenmar horenmar added the Development Issues related to further development of Catch2 label Dec 27, 2024
horenmar added a commit that referenced this issue Jan 5, 2025
We also bump the minimum CMake version to 3.20 as per #2943
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Development Issues related to further development of Catch2
Projects
None yet
Development

No branches or pull requests

1 participant