[llvm-dev] Upgrading LLVM's minimum required CMake version
Siva Chandra via llvm-dev
llvm-dev at lists.llvm.org
Thu Mar 26 22:24:58 PDT 2020
On Thu, Mar 26, 2020 at 3:12 PM Petr Hosek via llvm-dev <
llvm-dev at lists.llvm.org> wrote:
> On Thu, Mar 26, 2020 at 2:39 PM Shoaib Meenai via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
>> Ubuntu 20.04 LTS will be released soon, and I believe it’ll have CMake
>> 3.16.3, so that increases the LTS lower bound significantly.
>> I strongly disagree with the sentiment that the build system already
>> works so there’s no urgent need to improve it. I believe we should treat
>> the build system like code, and the same ideas around refactoring apply.
>> Our build system is a huge thorny mess; there’s tons of supported
>> configurations, lots of dependencies which rely on targets being processed
>> in a certain order, and so on. Some of that can be cleaned up without
>> requiring a CMake version bump, but generator expressions in particular are
>> a very powerful mechanism which enable targets to depend on each other
>> without requiring a particular order for processing them (which is very
>> fragile and easy to break). In turn, build system cleanups reduce bugs (and
>> we get plenty of those), make it much easier to add features with
>> confidence, and make the build system much more understandable. I think a
>> policy of “we only upgrade CMake versions when it’s absolutely necessary to
>> do so” would be pretty harmful for the health of the build system.
> Huge +1 from me! This is not about cosmetics, this is about improving the
> health of the project. There are known bugs in our build that we cannot
> solve without the use of generator expressions (for example
> Personally I'd really like LLVM to move to 3.15 which greatly expanded the
> generator expression support and would give us the biggest benefit.
While LLVM-libc can live with a minimum of 3.12, moving to 3.15 will allow
us to eliminate a lot more awkwardness from our build rules because of the
expanded generator expression support.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-dev