[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
> https://reviews.llvm.org/D68833).
>
> 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...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200326/35e20ac2/attachment.html>


More information about the llvm-dev mailing list