[llvm-dev] Upgrading LLVM's minimum required CMake version

Louis Dionne via llvm-dev llvm-dev at lists.llvm.org
Thu Mar 26 13:25:35 PDT 2020

> On Mar 26, 2020, at 16:07, Shoaib Meenai <smeenai at fb.com> wrote:
> We had this discussion a few months ago and it petered out, and it’s recently been revived in the context of upgrading the CMake version specifically for libc++ (at which point people suggested upgrading the CMake version used by all of LLVM), so let’s try to move this forward.

I was going to create a new thread to ask LLVM as a whole, but you did it faster and better than I could have! Thanks a lot for all the research and context you added below. This is great.

> [...]
> Our build system is incredibly complex, and many of these features can be used to clean it up and make it much more maintainable. I would personally like us to at least bump up to CMake 3.12. I also do think it's worth establishing a policy and process around upgrading CMake versions, since newer versions keep on adding useful features (particularly better generator expression support), and we want to be able to keep taking advantage of them.

I'd like to express very strong support for this. I believe 3.12 is reasonable, and it will give us a lot of features that can improve our life significantly, while still being old enough that some distributions will support it out of the box.

As far as establishing a policy goes, my preference would be to say that we systematically bump the requirement every release to e.g. the CMake released 12 months ago. I understand some people would rather have a detailed analysis of why we should upgrade every time, but I think it's unnecessary overhead because:
1. CMake keeps adding new features that can simplify the build system, so there's always "a reason" to upgrade
2. CMake is very easy to upgrade, so it makes sense to be more aggressive than for e.g. bumping compiler requirements

Bumping systematically would have the benefit of lowering the effort to making these upgrades and avoiding situations where upgrade efforts are stalled for several years due to the effort of having to convince people over again. If we bumped systematically, it would also ensure that users and bot owners are trained to upgrade from time to time.

However, no matter what the policy ends up being, I think it's important to at least bump it once soon, so I would be careful not to derail this effort in search of a perfect policy.


More information about the llvm-dev mailing list