<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">On 02/02/2014 03:02 PM, Dmitri Gribenko
      wrote:<br>
    </div>
    <blockquote
cite="mid:CA+Y5xYfbeVC-6uYGPf-Bhw2jGh1N2eixjKDgDc4jaax_fqF9UA@mail.gmail.com"
      type="cite">
      <pre wrap="">On Sun, Feb 2, 2014 at 8:09 AM, Stephen Kelly <a class="moz-txt-link-rfc2396E" href="mailto:steveire@gmail.com"><steveire@gmail.com></a> wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="">
Hello,

I work on CMake upstream. I'd like to find out in what ways CMake upstream
does not fit the needs of llvm/clang, and then fill those gaps. The recent
update of the minimum version to CMake 2.8.8 is a good start. Before being
able to assess what is missing, it should be ensured that the current
codebase is as modern as the minimum version allows, and it needs to be
cleaned up.
</pre>
      </blockquote>
      <pre wrap="">
Hi Stephen,

There is an ongoing discussion about compiler-rt where it was
mentioned that with CMake it is hard to use the just-built compiler to
build the runtime libraries:

<a class="moz-txt-link-freetext" href="http://permalink.gmane.org/gmane.comp.compilers.llvm.devel/69951">http://permalink.gmane.org/gmane.comp.compilers.llvm.devel/69951</a>
</pre>
    </blockquote>
    <br>
    I added a link to<br>
    <br>
     <a class="moz-txt-link-freetext" href="http://public.kitware.com/Bug/view.php?id=14539">http://public.kitware.com/Bug/view.php?id=14539</a><br>
    <br>
    implementing that would be the CMake answer to:<br>
    <br>
    <meta name="qrichtext" content="1">
    <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px;
      margin-right:0px; -qt-block-indent:0; text-indent:0px;
      -qt-user-state:0;"><!--StartFragment--><span style="
        font-family:'Monospace'; font-size:11pt;">Alexey Samsonov wrote:</span></p>
    <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px;
      margin-right:0px; -qt-block-indent:0; text-indent:0px;
      -qt-user-state:0;"><span style=" font-family:'Monospace';
        font-size:11pt;">> But if we want more functionality,</span></p>
    <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px;
      margin-right:0px; -qt-block-indent:0; text-indent:0px;
      -qt-user-state:0;"><span style=" font-family:'Monospace';
        font-size:11pt;">> like running the tests, we ought to have a
        single build system, single set</span></p>
    <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px;
      margin-right:0px; -qt-block-indent:0; text-indent:0px;
      -qt-user-state:0;"><span style=" font-family:'Monospace';
        font-size:11pt;">> of "targets" (binaries, libraries, test
        suites) with dependencies between</span></p>
    <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px;
      margin-right:0px; -qt-block-indent:0; text-indent:0px;
      -qt-user-state:0;"><span style=" font-family:'Monospace';
        font-size:11pt;">> them.</span></p>
    <p style="-qt-paragraph-type:empty; margin-top:0px;
      margin-bottom:0px; margin-left:0px; margin-right:0px;
      -qt-block-indent:0; text-indent:0px; font-family:'Monospace';
      font-size:11pt;"><br>
      <!--EndFragment--></p>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <style type="text/css">
p, li { white-space: pre-wrap; }
</style>What the Makefile system already does is already possible using
    CMake ExternalProject.<br>
    <br>
    <meta name="qrichtext" content="1">
    <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px;
      margin-right:0px; -qt-block-indent:0; text-indent:0px;
      -qt-user-state:0;"><!--StartFragment--><span style="
        font-family:'Monospace'; font-size:11pt;">Alexey Samsonov wrote:</span></p>
    <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px;
      margin-right:0px; -qt-block-indent:0; text-indent:0px;
      -qt-user-state:0;"><span style=" font-family:'Monospace';
        font-size:11pt;">> Well, LLVM/Clang's configure+make and
        compiler-rt's make are disjoint -</span></p>
    <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px;
      margin-right:0px; -qt-block-indent:0; text-indent:0px;
      -qt-user-state:0;"><span style=" font-family:'Monospace';
        font-size:11pt;">> when you run "make" in Clang build tree,
        at one point it simply invokes,</span></p>
    <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px;
      margin-right:0px; -qt-block-indent:0; text-indent:0px;
      -qt-user-state:0;"><span style=" font-family:'Monospace';
        font-size:11pt;">> the Makefile in compiler-rt directory.</span></p>
    <p style="-qt-paragraph-type:empty; margin-top:0px;
      margin-bottom:0px; margin-left:0px; margin-right:0px;
      -qt-block-indent:0; text-indent:0px; font-family:'Monospace';
      font-size:11pt;"><br>
      <!--EndFragment--></p>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <style type="text/css">
p, li { white-space: pre-wrap; }
</style><br>
    However,<br>
    <br>
    I wrote that I recommend cleaning up the cmake files first, which is
    why I listed several cleanups. Let's focus on that first.<br>
    <br>
    Thanks,<br>
    <br>
    Steve.<br>
    <br>
    <br>
  </body>
</html>