[LLVMdev] [RFC] Raise minimum required CMake version to 3.0

Chandler Carruth chandlerc at google.com
Tue Mar 10 14:30:43 PDT 2015

On Tue, Mar 10, 2015 at 1:06 PM, Chris Bieneman <beanz at apple.com> wrote:

> (adding chandler to the To line)
> On Mar 10, 2015, at 12:29 PM, Tobias Grosser <tobias at grosser.es> wrote:
> Chandler previously asked to ensure we stay with a cmake version that is
> available in the Ubuntu packages. If you want to drop this requirement, you
> probably want to cross-check with him.
> Chandler, do you have any thoughts based on the context in this thread?
> Please take as long as you need to digest it all, there is no imminent rush
> here.
> I personally also believe being a little bit more conservative here would
> be nice, if possible, as it keeps the barrier of entry to LLVM lower and
> also makes moving away from autoconf easier.
> Actually, the point I was trying to make earlier is that moving away from
> autoconf is HARDER on older versions of CMake. Yes everyone has make and
> can run configure, but CMake 2.8.x lacks features that would make it easier
> to support the remaining bits of functionality from the autoconf build
> system that the CMake one is lacking.
> Also, as I’ve pointed out before, building CMake from source is really
> easy, even on a system that doesn’t have an existing version of CMake. So
> while I understand (and am willing to accept) that installing from packages
> is easy and convenient, I’m not sure we should make it a requirement.
> Either way, at the moment I have no patches to land which use new features
> of CMake, so I’m not actually pushing to raise the minimum version today.
> As I see it, this conversation is more about establishing a policy, and
> determining what qualifies as a justification to update CMake versions.

So, I'm very sympathetic to the desire to make the CMake build better.
However, I also am sympathetic to wanting to make it super easy for a new
developer to download build and start using LLVM. I don't think we can make
an effective tradeoff here without specific context.

In the absence of specific features which would make our use of CMake
significantly better, I'm inclined to stick roughly to the version of CMake
in the latest LTS release of ubuntu (I don't know the stable releases of
debian well enough to cite it, but likely the same applies).

But in the presence of *specific* functionality we want to take advantage
of, I think we can and should be reasonable aggressive in leveraging
features to make our builds and tests better.

Ultimately, I think we'll have to make a case-by-case decision. It's going
to depend on the specific new feature and how much it improves our builds
in order to decide whether its worth dropping support for older cmakes,
even though doing so inconveniences new developers.

Here is how I would try to evaluate any such case: how much will the new
functionality of CMake help a *new developer* using LLVM in the first week
they're playing with it? If the functionality is going to significantly
benefit a new developer as early as the first week which they're using
LLVM, it might well be worth the cost of having to build their own version
of CMake just to build LLVM. I'd would try to evaluate this as a new
developer making that tradeoff.

Anyways, pretty vague until we have a specific case. Hope it helps though.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150310/e714485b/attachment.html>

More information about the llvm-dev mailing list