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

Csaba Raduly via llvm-dev llvm-dev at lists.llvm.org
Thu Nov 1 01:44:13 PDT 2018


On Thu, Nov 1, 2018 at 1:22 AM Vedant Kumar via cfe-dev
<cfe-dev at lists.llvm.org> wrote:
>
> Hi all,
>
>> On Oct 31, 2018, at 11:18 AM, Nico Weber via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>>
>> Hi,
>>
>> first things first: If you're happy with cmake, you can stop reading now.
>>

I'm not, I just put up with it :)

> ...
> I think it's very valuable that we have one shared build system. If you'd like to check in GN files, my strong preference would be to accompany that with a plan to phase cmake out.
>
> I really don't mean to be flippant here -- I'm in awe of the work you've already done to set up GN files, and I know transitioning away from cmake would be a massive amount of work. Hear me out :)
>
> My perspective comes from having worked on lldb for a while. lldb has two build systems (xcodebuild & cmake). I suppose opinions differ on whether that works well. Speaking for myself, having two build systems has been a massive source of frustration. I regularly see commits which break one of the two systems because of course they do. No one wants to test their commit a second time against a build system they don't really use. Replicating complex bits of build system logic also is a chore -- I've CC'd Stefan who might be able to say more about that.
>
> My concern is that introducing gn files into llvm will cause a bit of a fracture. If the policy is that cmake users don't have to worry about breaking the gn build, I think gn users would be less inclined to fix the cmake build. If most developers decide to switch to gn, that would leave cmake adopters with a higher (possibly unmanageable) maintenance burden. It's also confusing for new users, as they already have a lot of different ways of checking out and building.
>
> I know your plan is to have the maintenance burden of gn files placed on gn users, and that you haven't experienced an unmanageable number of breaks over the past 8 months. In lldb (a lower volume project), I actually do think the constant build breaks are hard to manage. And I'm just not sure the temptation to only update gn files could be resisted, as "works in my build system" tends to shut down conversations. I'm worried the same thing would happen in llvm.
>
> best,
> vedant
>
>

Precisely. How would the proposed cmake + gn build system be different
from the (deprecated and then removed) autoconf + cmake ?

Csaba
-- 
You can get very substantial performance improvements
by not doing the right thing. - Scott Meyers, An Effective C++11/14 Sampler
So if you're looking for a completely portable, 100% standards-conformat way
to get the wrong information: this is what you want. - Scott Meyers (C++TDaWYK)


More information about the llvm-dev mailing list