<div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Thu, Jun 18, 2015 at 5:10 PM John Criswell <<a href="mailto:jtcriswel@gmail.com">jtcriswel@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div bgcolor="#FFFFFF" text="#000000">
    <div>I'm wanting to know whether the ability to "plug into" the LLVM
    build system by external projects will be maintained.  For example,
    SAFECode doesn't have its own build system; it uses LLVM's, and it
    does so without being a "patch" to the LLVM source tree.  You can
    put the SAFECode source code anywhere you like, use LLVM-style
    Makefiles in its source code, and build it.  All of the
    PROJ_SRC_ROOT, PROJ_OBJ_ROOT magic in the autoconf build system is
    what permits that feature to work.<br></div></div></blockquote><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div bgcolor="#FFFFFF" text="#000000">
    <br>
    Do you intend to keep this functionality when you replace autoconf
    with cmake, or will all projects that want to use the LLVM build
    system need to place their source code in the LLVM source tree?</div></blockquote><div><br></div><div>There is actually some support for this already in the CMake build. see projects/CMakeLists.txt and add_llvm_external_project which specifically allows projects to live outside of LLVM's source tree.</div><div><br></div><div>But this is for known sub-projects, not for arbitrary ones. I understand that your use case is slightly different in that respect.</div><div><br></div><div><br></div><div>The use of LLVM's makefiles for completely unrelated projects being built outside of the LLVM source tree I think is likely to "go away" but that is because the functionality it provides is largely provided directly by CMake already.</div><div><br></div><div>The CMake modules that LLVM ships with which provide the missing functionality are easily reused in an independent CMake build by setting up the CMake module path to include LLVM's cmake directory... But I don't really recommend it as it seems more trouble than it is worth compared to just using the functionality that ships with CMake.</div><div><br></div><div><br></div><div>If you're using LLVM's makefiles to build code *against the LLVM libraries* but out of tree and not as part of an LLVM build, I don't know how this works and don't really know what to suggest. I'm just not familiar with that pattern.</div></div></div>