<div dir="ltr"><div>Some concrete examples we talked about:</div><div><br></div><div>CMake 3.14 introduced CMAKE_TRY_COMPILE_TARGET_TYPE which allows using static libraries rather than executables when performing compiler checks which is important when building runtimes (you cannot link an executable when you don't have a fully functional toolchain). This allows eliminating modules like <a href="https://github.com/llvm/llvm-project/blob/master/compiler-rt/cmake/Modules/BuiltinTests.cmake">https://github.com/llvm/llvm-project/blob/master/compiler-rt/cmake/Modules/BuiltinTests.cmake</a></div><div><br></div><div>CMake 3.12 introduced more powerful generator expressions that are evaluated only at generation time which means they aren't dependent on the order in which individual CMake files were executed. This allows cleaning some of the hacks we currently rely on in places like libc++, see for example <a href="https://reviews.llvm.org/D68880">https://reviews.llvm.org/D68880</a></div><div><br></div><div>We can work around many of these issues, but these workarounds are expensive to maintain and error prone (especially with growing number of configurations).</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Oct 30, 2019 at 10:18 AM Andrew Kelley via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 10/29/19 9:14 PM, Mehdi AMINI via llvm-dev wrote:<br>
> On Tue, Oct 29, 2019 at 3:29 PM James Y Knight via llvm-dev<br>
> <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a> <mailto:<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>>> wrote:<br>
> <br>
> CMake is extremely easy for developers to download and build locally<br>
> -- or just download binaries for if you like, too.<br>
> <br>
> Is there any script we can/would provide to help with this? Or is it so<br>
> simple that two lines in the "getting started" instructions would be enough?<br>
<br>
Such a script or instructions would be a more complicated build process<br>
than before. A more complicated build process is anti-progress.<br>
<br>
What specific benefits of bleeding edge CMake is so important, that this<br>
anti-progress is worth it?<br>
<br>
Andrew<br>
<br>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote></div></div>