vector-of-bool/pmm

Support older versions of CMake

Closed this issue · 4 comments

Ubuntu 16.04 is still very common. Its default version of CMake is 3.5.1. Is it reasonable to support CMake 3.5.1? That could allow more people to use pmm if they are unable to update CMake for some reason.

Not many changes are necessary. The cmake_minimum_requireds need to be updated, obviously, and the if(some_version VERSION_GREATER_EQUAL some_number) need to be changed to if(NOT some_version VERSION_LESS some_number). After that, I believe it works on CMake 3.5.1, although I have not tested all code paths.

If this is worth supporting (i.e. it's unlikely we'll need features from a more modern CMake version), I can go ahead and submit a PR for it.

I'd like to support a rolling window of CMake versions, say "N minor versions behind stable." I don't want to get stuck on supporting 3.9 when CMake 4.5 is out and it has become the new CMake 2.6.

Some thoughts: I don't know CMake's release schedule, but Ubuntu 16.04 will eventually reach end-of-life, and 18.04 has CMake 3.10. We could potentially keep our support on the LTS Ubuntus.

It's not too big of a loss to require a recent CMake, though. I could potentially maintain a fork which does support the LTS Ubuntus, as long as pmm doesn't end up using features which don't have workarounds with prior CMake versions.

I don't think this matters that much. If necessary, the user could host a backport repository where they backport to older CMake versions. That's also possible within this repo; we could have a branch for an older version of cmake, and mention that it's not very well supported. Either way, I'm closing this issue, because I don't think it's worth worrying over unless some user is willing to put in the work to maintain it.