<div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, 12 Feb 2019 at 21:52 Ben Boeckel <<a href="mailto:ben.boeckel@kitware.com">ben.boeckel@kitware.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Tue, Feb 12, 2019 at 21:28:50 +0100, Corentin wrote:<br>
> Similarly vcpkg and ports are, very sanely, source-based.<br>
> They wouldn't function differently than today.<br>
<br>
I think they have the same issue as Linux distributions, but may have<br>
better or more easily available optimization opportunities via BMIs.<br>
<br>
They still do "build A, install A, build B, install B" steps (optionally<br>
with "remove build tree" after each install). If B can't consume A<br>
without A's build tree still laying around… There's also nothing<br>
stopping B from using a different compiler than A today. Hooking up C++<br>
together through BMIs exclusively (rather than as an optimization)<br>
breaks things or ends up duplicating work for a GCC-built stack and a<br>
Clang-built stack of packages. Nevermind what's supposed to happen when<br>
you want to link together two projects which don't have an intersection<br>
of supported compilers.<br>
<br>
> * Reason 47 to have a deterministic mapping from module name to Module<br>
> Interface Units identifier.<br>
<br>
If this is how the build tools decide what to do with external modules,<br>
so be it. But, I'm fine with it being a format output as the result of a<br>
build that compilers or build tools can generate (like a .so or .dll)<br>
and consumed via CMake's usage requirements or extracted from special<br>
values in .pc files. I certainly don't want to be required to write or<br>
maintain such a thing by hand.<br></blockquote><div><br></div><div><br></div><div>I was talking of encoding the module name in the filename of the interface header unit file.</div><div>Let's not maintain unmaintainable files by hand :)</div><div>Â </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
--Ben<br>
</blockquote></div></div>