[llvm-dev] [cfe-dev] GN build roundtable summary; adding GN build files to the repo

David Blaikie via llvm-dev llvm-dev at lists.llvm.org
Thu Nov 1 09:49:18 PDT 2018


Any easy way to do this as some kind of overlay, so they GN files wouldn't
live in the LLVM repository, but in a separate one?

(this might avoid some of the community discussion - though would perhaps
still likely have the issue I see as most significant: With a sufficient
number of developers using GN, the rate of build breaks due to those
developers missing CMake file updates might rise to be a bit of a drag on
the LLVM project - though I don't think that's likely to ever be a huge
deal, just an annoyance)

On Wed, Oct 31, 2018 at 11:19 AM Nico Weber via cfe-dev <
cfe-dev at lists.llvm.org> wrote:

> Hi,
>
> first things first: If you're happy with cmake, you can stop reading now.
> Nobody is proposing that LLVM moves off cmake, and nobody is proposing
> anything that's causing people using cmake more work.
>
> At the LLVM conference, I gave a lightning talk [1] about using GN [2] to
> build LLVM and clang. cmake is great for many use cases, but in my opinion
> local day-to-day development isn't one of them. So I wrote GN build files
> for LLVM and clang, enough to make `ninja check-llvm check-clang check-lld`
> build everything needed for these three test suites and that all tests
> pass. This works on Linux, Mac, Win hosts targeting X86, ARM, AArch64. You
> can see them at [3].
>
> I had been worried that it would be a lot of work to keep the build files
> up to date, but I've been using this for all my LLVM/clang/lld development
> the last 8 months, and it turned out to not be a big problem -- LLVM's
> build files don't change very often, and GN build files are a pleasure to
> work with in my opinion.
>
> I gave the lightning talk just to talk about my personal workflow, but
> there was a lot of interest. We had a roundtable on the next day, and about
> 20 people said they'd be interested in using this for their development
> too. The main request was that the .gn files are checked in upstream, so
> that we can collaborate on keeping them working. Two to three orgs even
> said they'd be interested in moving their buildbots to GN.
>
> As mentioned at the top, the intention here is not to replace cmake, only
> to offer an opt-in alternative for people who are interested in it. Keeping
> the GN build going would be the responsibility of people using it, not of
> the general LLVM community. If this fails to find use and bitrots, we can
> easily remove it again.
>
> Are there any concerns with checking in GN files? I've put some initial
> docs for the GN build at https://reviews.llvm.org/D53944 ; it describes
> what the GN build is and is not, what its advantages are (speed and easier
> configurability), and some points about the philosophy behind the LLVM GN
> build.
>
> If folks are generally ok with GN files living in-tree, I'll start sending
> patches for gradually adding gn files through the regular review process.
>
> If having a BUILD.gn file in every directory being confusing is a concern,
> GN has the concept of a "secondary tree" so that all GN files could be
> below llvm/gn/tree/{llvm,clang,lld,...}.
>
> Cheers,
> Nico
>
> 1: https://llvm.org/devmtg/2018-10/talk-abstracts.html#lt2
> 2: https://gn.googlesource.com/gn , https://is.gd/gn_intro
> 3:
> https://github.com/llvm-project/llvm-project-20170507/compare/master...nico:gn
> , click "Files Changed" to see the GN files.
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20181101/ce9e194b/attachment.html>


More information about the llvm-dev mailing list