<div dir="ltr">On Fri, Aug 16, 2013 at 4:22 PM, Chandler Carruth <span dir="ltr"><<a href="mailto:chandlerc@google.com" target="_blank">chandlerc@google.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div><br><div class="gmail_quote">
On Fri, Aug 16, 2013 at 3:48 PM, Hans Wennborg <span dir="ltr"><<a href="mailto:hans@chromium.org" target="_blank">hans@chromium.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div style="overflow:hidden">  Change option name to LLVM_INSTALL_DEV_FILES. Also move cmake files and llvm-lit under this flag.<br><br>  (Not changing the code review title to hopefully keep this in the same email thread.)<br>
</div></blockquote></div><br></div>Er, no?</div><div class="gmail_extra"><br></div><div class="gmail_extra">So, first note that this changes users of 'make install' in addition to users of cpack.</div><div class="gmail_extra">
<br></div><div class="gmail_extra">There are two layers of this:</div><div class="gmail_extra"><br></div><div class="gmail_extra">1) install development tools / resources useful for developing other *LLVM* projects (tblgen, etc)</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">2) install *anything* but executable binaries.</div><div class="gmail_extra"><br></div><div class="gmail_extra">I think these should be different. I think #1 should be default-off and turned on for users of the stand-alone Clang cmake build. It should be called something about "development".</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">I think #2 should be default-on, because many many users of LLVM specifically want the core libraries. I think the best way is to negate the flag: make it INSTALL_TOOLCHAIN_BINARIES_ONLY or something, and when enabled, you only get the binaries used as part of a toolchain (llvm-{ar,nm,dwarfdump,...}, clang, clang-format, etc., but not opt or llc.</div>
</div></blockquote></div></div><div class="gmail_extra"><br></div><div class="gmail_extra">First, I just want to make it clear that this patch makes not default behavior change to 'make install' or anything else.  The headers, core libs, etc, are all on by default.</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">Do you think it's worth adding another option to separate "only install toolchain binaries" from "don't install development resources"?  If we can get by with fewer options, that seems better.</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">Personally I want to distribute llc and opt, even if they bloat the package by 2x for now, but I could be talked out of it.  I like the idea of the usual -emit-llvm -S, opt, llc, pipelines being available out of the box.</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">Longer term, I wanted to experiment with building something like bigLLVM.dll and bigclang.dll (names are bad, whatever) which exposes the minimal set of exports necessary to interface with the binaries in tools/.  This avoids most of the code bloat from static linking without paying for all the relocation and runtime overhead of our usual BUILD_SHARED_LIBS build.  Then the cost of distributing the LLVM tools would be smaller.  It might not be practical, given the tight coupling between clang IRgen and LLVM's C++ API.</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">If that falls through, then yeah, we can sweep llc etc under the umbrella of dev files.</div></div>