[cfe-dev] Raising CMake minimum version to 3.4.3

John Criswell via cfe-dev cfe-dev at lists.llvm.org
Tue Apr 26 17:51:50 PDT 2016

On 4/26/16 6:50 PM, Chris Bieneman wrote:
>> On Apr 26, 2016, at 3:47 PM, John Criswell <jtcriswel at gmail.com 
>> <mailto:jtcriswel at gmail.com>> wrote:
>> On 4/26/16 6:01 PM, Chris Bieneman via cfe-dev wrote:
>>> Hello llvm-dev and cfe-dev,
>>> I want open up the discussion of upgrading our minimum required 
>>> CMake version.
>>> In the past when we’ve discussed this one of the major reasons for 
>>> not moving forward was that the Ubuntu LTS release was on CMake 
>>> 2.8.12.x. A few days ago Ubuntu 16.04, the new LTS, was released, 
>>> and it contains CMake 3.5.1.
>>> I have a couple of motivations for this, the biggest of which is 
>>> that I’ve hit a wall trying to overcome some limitations in the 
>>> CMake ExternalProject module which I can’t get past without being on 
>>> CMake 3.4 or newer. These limitations make using ExternalProject to 
>>> build the LLVM test-suite and runtime libraries (compiler-rt, 
>>> libcxx, etc) difficult.
>>> The other big motivation that I have for this is the ability to 
>>> cleanup code. We have a lot of CMake code that checks CMAKE_VERSION 
>>> and enables and disables features used on the version. None of the 
>>> places where we currently have CMAKE_VERSION checks should impact 
>>> build correctness, but most people don’t realize that if you’re 
>>> using Ninja your build will be faster on a newer CMake than on an 
>>> older one. It would be nice if we just pushed the bar up and could 
>>> remove a bunch of those conditionals.
>>> To do this we need bot maintainers to update their CMake 
>>> installations, so we need some consensus that (1) we want to do this 
>>> and (2) what a reasonable timeline for doing it is.
>>> What I’d like to do is raise the minimum version for all LLVM 
>>> projects to CMake 3.4.3 at the end of May. Setting the date at the 
>>> end of May gives bot maintainers and developers lots of time to 
>>> update, and CMake 3.4.3 is the last CMake 3.4 release and it is 
>>> widely available. For reference here’s a list of linux distributions 
>>> and their CMake versions:
>>> Ubuntu Wily -> 3.2.2
>>> Ubuntu Xenial -> 3.5.1
>>> Ubuntu Yakkety -> 3.5.1
>>> Debian jessie -> 3.0.2
>>> Debian stretch -> 3.5.1
>>> Debian sid -> 3.5.2
>>> FreeBSD 10.2 -> 3.5.0
>>> FreeBSD HEAD -> 3.5.2
>>> Feedback?
>> How did you determine that FreeBSD 10.2 is using cmake 3.5.0?  On my 
>> FreeBSD 10.3 system, I have cmake version 3.4.1 (I think it got 
>> installed from ports when I installed other software).
> I have a fully updated FreeBSD 10.2 machine and ran “pkg search 
> cmake”. It came back with 3.5.0. I’m not sure what version it released 
> with, but the updated version is in the ports collection.

I think I see the issue: the initial ports collection provides cmake 
3.4.1, but if you use pkg update, you get cmake 3.5.0.  Is that correct?

Ideally, I'd like LLVM to build right out of the box after I install a 
system.  From that point of view, I'd argue for dropping your 
requirement from 3.4.3 to 3.4.1, which may be reasonable if there aren't 
any necessary features that were added between 3.4.1 and 3.4.3 that you 

If you decide to go to cmake 3.4.3, you might want to modify the LLVM 
Getting Started Guide with text stating that the system will need to be 
updated in order to build LLVM.  If you're going to require a system 
update before LLVM would compile, a heads-up in the docs would be useful.


John Criswell

>> Also, I see that you sent this tollvm-dev at lists.apple.com 
>> <mailto:llvm-dev at lists.apple.com>. Shouldn't this also go 
>> tollvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>(or are 
>> they the same list)?
> I auto-completed llvm-dev incorrectly on my original email and have 
> been fixing it on subsequent replies.
>> Third, just to nitpick, FreeBSD is not a Linux distribution.  :)
> Should have probably said *nix :-)
> -Chris
>> Regards,
>> John Criswell
>>> Thanks,
>>> -Chris
>>> _______________________________________________
>>> cfe-dev mailing list
>>> cfe-dev at lists.llvm.org <mailto:cfe-dev at lists.llvm.org>
>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>> --
>> John Criswell
>> Assistant Professor
>> Department of Computer Science, University of Rochester
>> http://www.cs.rochester.edu/u/criswell

John Criswell
Assistant Professor
Department of Computer Science, University of Rochester

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20160426/3afc9463/attachment.html>

More information about the cfe-dev mailing list