<div dir="auto"><div><br><br><div class="gmail_quote"><div dir="ltr">On Wed, 31 Oct 2018, 23:43 Dean Michael Berris <<a href="mailto:dean.berris@gmail.com" target="_blank" rel="noreferrer">dean.berris@gmail.com</a> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
<br>
> On 1 Nov 2018, at 10:21, Stephen Kelly via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" rel="noreferrer noreferrer" target="_blank">llvm-dev@lists.llvm.org</a>> wrote:<br>
> <br>
> On 31/10/2018 22:44, Dean Michael Berris via llvm-dev wrote:<br>
>> FWIW, this is consistent with my experience as well.<br>
>> I also wrote a presubmit script that I run locally to build/test the cross-product of:<br>
>> COMPILER={gcc+gold, clang+lld}<br>
>> MODE={debug, release-with-assertions}<br>
>> TARGETS={llvm+clang+lld+compiler-rt, compiler-rt(standalone)}<br>
>> While the build/test times are helped by using ninja, the CMake config times are less than optimal.<br>
> <br>
> <br>
> 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.<br>
> <br>
<br>
I think this might be easier when we finish the move to the monorepo, and can better coordinate/simplify the build across projects. I certainly think it’s worth doing, even if we end up with GN and CMake files in the project.<br>
<br>
I’m personally not aware of the “modern” CMake patterns. Do you have a reference online that interested individuals might be able to casually approach?<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">Here is a talk with unfortunate audio quality:</div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"></blockquote></div></div><div dir="auto"><br></div><div dir="auto"><a href="https://steveire.wordpress.com/2017/11/05/embracing-modern-cmake" target="_blank" rel="noreferrer">https://steveire.wordpress.com/2017/11/05/embracing-modern-cmake</a><br></div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto">And documentation:</div><div dir="auto"><br></div><div dir="auto"><a href="https://cmake.org/cmake/help/latest/manual/cmake-buildsystem.7.html">https://cmake.org/cmake/help/latest/manual/cmake-buildsystem.7.html</a><br></div><div dir="auto"><br></div><div dir="auto">The big topic that llvm does not take advantage of is usage requirements on targets as documented there. </div><div dir="auto"><br></div><div dir="auto">Thanks,</div><div dir="auto"><br></div><div dir="auto">Stephen. </div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Cheers<br>
<br>
-- Dean<br>
<br>
</blockquote></div></div></div>