<div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Wed, Dec 19, 2018 at 1:24 PM Peter Bindels <<a href="mailto:dascandy@gmail.com">dascandy@gmail.com</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"><div dir="ltr"><div>Hi Jon,</div><div><br></div><div>I've given talks on how it works at MeetingC++ 2016 and 2017, and CppCon 2018. We're using one of those tools at work too to autogenerate 70% of our build scripts (CMake) for a very large project (1000+ components). You can find the tool repositories on <a href="https://github.com/tomtom-international/cpp-dependencies" target="_blank">https://github.com/tomtom-international/cpp-dependencies</a> and <a href="https://github.com/dascandy/evoke" target="_blank">https://github.com/dascandy/evoke</a>. <br></div><div><br></div><div>I'm mostly advocating the approach as a valid one though, rather than the specific tools. I believe John Lakos' Large Scale C++ Software Design also allures to it as a valid approach.</div></div></blockquote><div><br></div><div>Btw, loved the CppCon talk, and I think this is a great addition to the C++ build space.</div><div>Internally at Google (unfortunately not all of this is published yet, mainly due to internal dependencies that are hard to get rid off) I also have basically stopped editing build files, because a tool does that for me - I think that's the approach from the other side of the spectrum: consider build files a human-editable cache of the information a tool can figure out. The tool fits the 99.9% case, and when you have special cases, like various .so's that need to link in the exact symbols you want, or multi-language repositories where you want to build code-generators, and sandboxed remote builds, you also get this. That obviously comes with significant overhead, so I do think the layout based build system approach has great upsides as long as one can make it work.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><br></div><div>Regards,</div><div>Peter Bindels<br></div></div><br><div class="gmail_quote"><div dir="ltr">On Wed, 19 Dec 2018 at 13:11, Jon Chesterfield <<a href="mailto:jonathanchesterfield@gmail.com" target="_blank">jonathanchesterfield@gmail.com</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"><div dir="ltr"><div class="gmail_quote">Hi Peter,<br><br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Date: Wed, 19 Dec 2018 08:48:54 +0100<br>
From: Peter Bindels <<a href="mailto:dascandy@gmail.com" target="_blank">dascandy@gmail.com</a>> </blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
I, for one, have stopped writing build files about 4 years ago and I<br>
haven't missed them one bit.<br></blockquote><br></div><div class="gmail_quote">How have you achieved this excellent result?<br><br></div><div class="gmail_quote">I spent a long time trying to write a single build script that would infer dependencies from the filesystem layout and then just works as more files are added / moved. That's sort of functional, but it struggles with code generators and still contains a list of what libraries various executables should be linked against.<br><br></div><div class="gmail_quote">I'd very much like a good solution to this.<br><br></div><div class="gmail_quote">Cheers<br><br></div><div class="gmail_quote">Jon<br></div><div class="gmail_quote"><br></div></div>
_______________________________________________<br>
Tooling mailing list<br>
<a href="mailto:Tooling@isocpp.open-std.org" target="_blank">Tooling@isocpp.open-std.org</a><br>
<a href="http://www.open-std.org/mailman/listinfo/tooling" rel="noreferrer" target="_blank">http://www.open-std.org/mailman/listinfo/tooling</a><br>
</blockquote></div>
_______________________________________________<br>
Tooling mailing list<br>
<a href="mailto:Tooling@isocpp.open-std.org" target="_blank">Tooling@isocpp.open-std.org</a><br>
<a href="http://www.open-std.org/mailman/listinfo/tooling" rel="noreferrer" target="_blank">http://www.open-std.org/mailman/listinfo/tooling</a><br>
</blockquote></div></div>