<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Sep 9, 2016, at 12:40 PM, Alexander via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" class="">llvm-dev@lists.llvm.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class="">
  
    <meta content="text/html; charset=windows-1252" http-equiv="Content-Type" class="">
  
  <div bgcolor="#FFFFFF" text="#000000" class=""><p class="">Oh sorry. I missed that. I'll do that aswell. But what i said was
      just about the general idea of only using what you need and
      breaking of dependencies (in this case a kind repositorydependency
      if everything is not a submodul).</p><p class="">Imagine someone wants to work on something inside of LLVM itself.
      he creates a branch, does his changes. At some point he'll rebase
      his branch on top of the remote version. Lot of commits flow in.
      Even if no conflict occured, you might want to study the new
      commits. At this point however you have to filter out all the
      commits which do not influence the LLVM-Project. Instead if it's a
      repo with submodules, you can work on the LLVM submodul and review
      only those commits. I'd say the Monolith-Repo has (maybe) to much
      noise sometimes.<br class="">
    </p>
    The whole LLVM/CLang/... has some nice (theoretical) groups you
    can/could split them into. However reading about the cmake-magic
    here i get it that it might be hard to really decouple them.<br class=""></div></div></blockquote><div><br class=""></div><div>It is actually simpler to decouple than you might think. Clang depends on LLVM libraries or functionality and LLVM’s CMake for functionality. In both cases a built and installed LLVM distribution is sufficient. LLVM’s CMake build installs the CMake modules and configuration files necessary to build Clang against a completely separate LLVM.</div><div><br class=""></div><div>This is something we also support in some of the runtime projects (at the very least compiler-rt, libcxx, libcxxabi).</div><div><br class=""></div><div>-Chris</div><br class=""><blockquote type="cite" class=""><div class=""><div bgcolor="#FFFFFF" text="#000000" class="">
    <br class="">
    <div class="moz-cite-prefix">Am 09.09.2016 um 16:11 schrieb Mehdi
      Amini:<br class="">
    </div>
    <blockquote cite="mid:61200EA0-DE41-4733-9950-669D5066B51F@apple.com" type="cite" class="">
      <meta http-equiv="content-type" content="text/html;
        charset=windows-1252" class="">
      <div class="">
        <div style="direction: inherit;" class=""><br class="">
        </div>
        <div style="direction: inherit;" class=""><br class="">
        </div>
      </div>
      <div class="">On Sep 9, 2016, at 2:11 AM, Alexander Benikowski <<a moz-do-not-send="true" href="mailto:sebal007@googlemail.com" class="">sebal007@googlemail.com</a>>
        wrote:<br class="">
        <br class="">
      </div>
      <blockquote type="cite" class="">
        <div class="">
          <div dir="ltr" class="">
            <div class="">I'd vote for having each component in a seperated
              Repository and using a Monorepo with Submodules to work
              with.<br class="">
            </div>
            Since CLang depends on LLVM but not vice versa (if i am not
            mistaken. I'm new here), i'd prefer to just work with the
            LLVM repo if it is desired.<br class="">
          </div>
        </div>
      </blockquote>
      <div style="direction: inherit;" class=""><br class="">
      </div>
      <div style="direction: inherit;" class="">Can you elaborate why and what
        kind of workflow you have that would benefit from this?</div>
      <div style="direction: inherit;" class=""><br class="">
      </div>
      <div style="direction: inherit;" class="">Also did you read the document I
        sent with the examples?</div>
      <div style="direction: inherit;" class=""><br class="">
      </div>
      <div style="direction: inherit;" class="">-- </div>
      <div style="direction: inherit;" class="">Mehdi </div>
      <div style="direction: inherit;" class=""><br class="">
      </div>
      <div style="direction: inherit;" class=""><br class="">
      </div>
      <div style="direction: inherit;" class=""><br class="">
      </div>
      <blockquote type="cite" class="">
        <div class="">
          <div class="gmail_extra"><br class="">
            <div class="gmail_quote">2016-09-08 21:49 GMT+02:00 Renato
              Golin via llvm-dev <span dir="ltr" class=""><<a moz-do-not-send="true" href="mailto:llvm-dev@lists.llvm.org" target="_blank" class="">llvm-dev@lists.llvm.org</a>></span>:<br class="">
              <blockquote class="gmail_quote" style="margin:0 0 0
                .8ex;border-left:1px #ccc solid;padding-left:1ex">On 8
                September 2016 at 19:37, Mehdi Amini via llvm-dev<br class="">
                <span class=""><<a moz-do-not-send="true" href="mailto:llvm-dev@lists.llvm.org" class="">llvm-dev@lists.llvm.org</a>>
                  wrote:<br class="">
                  > I'd expect a cmake shortcut cmake<br class="">
                  > -DLLVM_ENABLE_PROjECTS=clang,<wbr class="">libcxx,compiler-rt<br class="">
                  <br class="">
                </span>Hey, I like this idea!<br class="">
                <br class="">
                In that case, we don't need the directories in any
                particular<br class="">
                location, as CMake would be able to find and link any
                place *we* want<br class="">
                to put them in (in tree, flat out) and pull out their
                CMake files.<br class="">
                <br class="">
                This would also help each project to be built in its
                own, if they so<br class="">
                require, without upsetting the LLVM-canon build style.<br class="">
                <br class="">
                cheers,<br class="">
                --renato<br class="">
                <div class="HOEnZb">
                  <div class="h5">______________________________<wbr class="">_________________<br class="">
                    LLVM Developers mailing list<br class="">
                    <a moz-do-not-send="true" href="mailto:llvm-dev@lists.llvm.org" class="">llvm-dev@lists.llvm.org</a><br class="">
                    <a moz-do-not-send="true" href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank" class="">http://lists.llvm.org/cgi-bin/<wbr class="">mailman/listinfo/llvm-dev</a><br class="">
                  </div>
                </div>
              </blockquote>
            </div>
            <br class="">
          </div>
        </div>
      </blockquote>
    </blockquote>
    <br class="">
  </div>

_______________________________________________<br class="">LLVM Developers mailing list<br class=""><a href="mailto:llvm-dev@lists.llvm.org" class="">llvm-dev@lists.llvm.org</a><br class="">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev<br class=""></div></blockquote></div><br class=""></body></html>