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

Stephen Kelly via llvm-dev llvm-dev at lists.llvm.org
Wed Oct 31 16:39:07 PDT 2018


On Wed, 31 Oct 2018, 23:28 Zachary Turner <zturner at google.com wrote:

> That is certainly possible, however if we're going to re-write the entire
> build system anyway.......
>
> One thing to think about is that generated IDE projects from CMake are
> less than ideal.  In fact I actually made a post about this a few weeks
> ago.  In MSVC I consider them barely usable.  I can edit files and get code
> completion with them, but that's about it.  Navigation is painful at best
> (can take several up to 10 seconds just to open a file), and everything is
> extremely slow because MSVC is churning away trying to process its build
> dependency graph.  Occasionally things just stop working for 10-20 seconds
> at a time.
>


One of the advantages of clang being in a separate repo which can be built
independent of llvm is that both are then in smaller solutions. The clang
build would treat llvm as an external dependency and not have it's cpp
files in the solution.

I know we're moving to a monorepo and VS solution size is not part of that
consideration, so that size reduction won't be possible anymore.

I don't know if there are other ways to reduce solution size. I also
haven't hit performance problems related to VS, though I only build
llvm/clang/cte on windows, I don't do development on it.

I can see if I can reproduce the kinds of problems you see tomorrow. Can
you give me a got URL and cake command line to repro exactly your
experience?

Thanks,

Stephen.


> I've heard that Xcode is also barely usable but can't speak for this
> myself.
>
> Is this any better with gn-generated IDE projects?  I actually don't
> know!  Because I've never used them.  But it's at least something to think
> about.
>
> On Wed, Oct 31, 2018 at 4:21 PM Stephen Kelly via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
>
>> On 31/10/2018 22:44, Dean Michael Berris via llvm-dev wrote:
>> > FWIW, this is consistent with my experience as well.
>> >
>> > I also wrote a presubmit script that I run locally to build/test the
>> cross-product of:
>> >
>> > COMPILER={gcc+gold, clang+lld}
>> > MODE={debug, release-with-assertions}
>> > TARGETS={llvm+clang+lld+compiler-rt, compiler-rt(standalone)}
>> >
>> > While the build/test times are helped by using ninja, the CMake config
>> times are less than optimal.
>>
>>
>> It is possible that we have features/complexity in our CMakeLists.txt
>> which is not needed. The CMake files are not using modern cmake
>> features. Maybe it's time to change that. It might simplify the
>> buildsystem a bit.
>>
>> Thanks,
>>
>> Stephen.
>>
>> _______________________________________________
>> LLVM Developers mailing list
>> llvm-dev at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20181031/4fd6f419/attachment-0001.html>


More information about the llvm-dev mailing list