<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, May 24, 2019 at 8:57 AM Shoaib Meenai <<a href="mailto:smeenai@fb.com">smeenai@fb.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">





<div lang="EN-US">
<div class="gmail-m_7940280438582244416WordSection1">
<p class="MsoNormal">That would only matter if the path keeps changing even on a single machine, right? Having different paths on different machines should be fine, as long as the path on a single machine stays consistent.</p></div></div></blockquote><div><br></div><div>My understanding was that in his case, he's using NFS, or something like it, so the machines actually share the same build tree.  In any case, it's fixed, so this case continues to work.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US"><div class="gmail-m_7940280438582244416WordSection1"><p class="MsoNormal"><u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<div style="border-right:none;border-bottom:none;border-left:none;border-top:1pt solid rgb(181,196,223);padding:3pt 0in 0in">
<p class="MsoNormal"><b><span style="font-size:12pt;color:black">From: </span></b><span style="font-size:12pt;color:black">Don Hinton <<a href="mailto:hintonda@gmail.com" target="_blank">hintonda@gmail.com</a>><br>
<b>Date: </b>Friday, May 24, 2019 at 8:53 AM<br>
<b>To: </b>Shoaib Meenai <<a href="mailto:smeenai@fb.com" target="_blank">smeenai@fb.com</a>><br>
<b>Cc: </b>Mikael Holmén <<a href="mailto:mikael.holmen@ericsson.com" target="_blank">mikael.holmen@ericsson.com</a>>, "<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>" <<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>><br>
<b>Subject: </b>Re: [llvm] r361280 - [cmake] Add custom command to touch archives on Darwin so ninja won't rebuild them.<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<div>
<p class="MsoNormal">On Fri, May 24, 2019 at 8:41 AM Shoaib Meenai <<a href="mailto:smeenai@fb.com" target="_blank">smeenai@fb.com</a>> wrote:<u></u><u></u></p>
</div>
<blockquote style="border-top:none;border-right:none;border-bottom:none;border-left:1pt solid rgb(204,204,204);padding:0in 0in 0in 6pt;margin-left:4.8pt;margin-right:0in">
<p class="MsoNormal">Yup, just passing `-G Ninja` to CMake should make it pick up on whatever Ninja is on your path ... you shouldn't need the explicit `-DCMAKE_MAKE_PROGRAM=ninja`.<u></u><u></u></p>
</blockquote>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Actually, his use case requires passing it without a path.  Otherwise, cmake with save the path and use it, which as he states, may be different on different machines that share that say build tree.  <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<blockquote style="border-top:none;border-right:none;border-bottom:none;border-left:1pt solid rgb(204,204,204);padding:0in 0in 0in 6pt;margin-left:4.8pt;margin-right:0in">
<p class="MsoNormal" style="margin-bottom:12pt"><br>
On 5/24/19, 12:03 AM, "llvm-commits on behalf of Mikael Holmén via llvm-commits" <<a href="mailto:llvm-commits-bounces@lists.llvm.org" target="_blank">llvm-commits-bounces@lists.llvm.org</a> on behalf of
<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>> wrote:<br>
<br>
    Hi,<br>
<br>
    On 5/23/19 5:02 PM, Don Hinton wrote:<br>
    > Hi Mikael:<br>
    > <br>
    > Thanks for reporting this.<br>
    > <br>
    > Looks like the call to `include(CMakeNinjaFindMake OPTIONAL)` is the <br>
    > problem since it's using find_program and overwrites it if it isn't a <br>
    > full path.  Since the generator already set it, there's no reason for an <br>
    > additional find_program call, so I'll remove it.<br>
    > <br>
    > Fixed in r361501.<br>
    > <br>
<br>
    Thanks!<br>
<br>
    > Btw, why were you setting CMAKE_MAKE_PROGRAM to a value without a path?  <br>
    > Is this so you can test alternative versions of ninja without rerunning <br>
    > cmake?<br>
    > <br>
<br>
    We're using several different machines with ninja installed at different <br>
    places, so I think we just set CMAKE_MAKE_PROGRAM to ninja (without <br>
    path) to use whatever ninja version we have in the PATH on that machine.<br>
<br>
    Perhaps we don't actually need to set CMAKE_MAKE_PROGRAM at all then?<br>
<br>
    Anyway, your patch made it work with just "ninja" again.<br>
<br>
    Thanks,<br>
    Mikael<br>
<br>
    > thanks again...<br>
    > don<br>
    > <br>
    > On Thu, May 23, 2019 at 2:30 AM Mikael Holmén <br>
    > <<a href="mailto:mikael.holmen@ericsson.com" target="_blank">mikael.holmen@ericsson.com</a> <mailto:<a href="mailto:mikael.holmen@ericsson.com" target="_blank">mikael.holmen@ericsson.com</a>>> wrote:<br>
    > <br>
    >     Hi Don,<br>
    > <br>
    >     I noticed that if I run cmake and configure with<br>
    >     -DCMAKE_MAKE_PROGRAM=ninja, so I'm not including the full path to<br>
    >     ninja,<br>
    >     then I get errors with this commit when it tries to do "ninja<br>
    >     --version".<br>
    > <br>
    >     It then tries to do<br>
    > <br>
    > <br>
    >     '/local/repo/bbiswjenk/fem023-eiffel003/workspace/llvm/llvm-dev-kielx2/build-ccache/ninja'<br>
    > <br>
    >     '--version'<br>
    > <br>
    >     If I instead configure with -DCMAKE_MAKE_PROGRAM=/usr/bin/ninja it<br>
    >     works<br>
    >     as it should.<br>
    > <br>
    >     /usr/bin/ is included in the PATH, but still it tries to run ninja from<br>
    >     the local build directory when I've cofigured with just "ninja".<br>
    > <br>
    >     Is this expected?<br>
    > <br>
    >     Regards,<br>
    >     Mikael<br>
    > <br>
    >     On 5/21/19 7:56 PM, Don Hinton via llvm-commits wrote:<br>
    >      > Author: dhinton<br>
    >      > Date: Tue May 21 10:56:45 2019<br>
    >      > New Revision: 361280<br>
    >      ><br>
    >      > URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject-3Frev-3D361280-26view-3Drev&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=rA1dpiQ5BP19dSBWl_-62q5HoYRz-RZJ3dPBh30g_uQ&s=1eOl5C4BmOsaH73pUE2CuP0LY6sw1Ibh1SdA4Md_IZE&e=" target="_blank">
https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject-3Frev-3D361280-26view-3Drev&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=rA1dpiQ5BP19dSBWl_-62q5HoYRz-RZJ3dPBh30g_uQ&s=1eOl5C4BmOsaH73pUE2CuP0LY6sw1Ibh1SdA4Md_IZE&e=</a><br>
    >      > Log:<br>
    >      > [cmake] Add custom command to touch archives on Darwin so ninja<br>
    >     won't rebuild them.<br>
    >      ><br>
    >      > Summary:<br>
    >      > clang and newer versions of ninja use high-resolutions<br>
    >     timestamps, but<br>
    >      > older versions of libtool on Darwin don't, so the archive will often<br>
    >      > get an older timestamp than the last object that was added or<br>
    >     updated.<br>
    >      > To fix this, we add a custom command to touch the archive after it's<br>
    >      > been built so that ninja won't rebuild it unnecessarily the next time<br>
    >      > it's run.<br>
    >      ><br>
    >      > Reviewed By: beanz<br>
    >      ><br>
    >      > Tags: #llvm<br>
    >      ><br>
    >      > Differential Revision: <a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__reviews.llvm.org_D62172&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=rA1dpiQ5BP19dSBWl_-62q5HoYRz-RZJ3dPBh30g_uQ&s=q7mkc41SyCVHOSaXDTrV4au_qB6ljYSEagRmo5NPxns&e=" target="_blank">
https://urldefense.proofpoint.com/v2/url?u=https-3A__reviews.llvm.org_D62172&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=rA1dpiQ5BP19dSBWl_-62q5HoYRz-RZJ3dPBh30g_uQ&s=q7mkc41SyCVHOSaXDTrV4au_qB6ljYSEagRmo5NPxns&e=</a><br>
    >      ><br>
    >      > Modified:<br>
    >      >      llvm/trunk/cmake/config-ix.cmake<br>
    >      >      llvm/trunk/cmake/modules/AddLLVM.cmake<br>
    >      ><br>
    >      > Modified: llvm/trunk/cmake/config-ix.cmake<br>
    >      > URL:<br>
    >     <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_cmake_config-2Dix.cmake-3Frev-3D361280-26r1-3D361279-26r2-3D361280-26view-3Ddiff&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=rA1dpiQ5BP19dSBWl_-62q5HoYRz-RZJ3dPBh30g_uQ&s=KhAFSUB3GQ9iUyo13QjW6oigXazyWHCRLwror8QxA0k&e=" target="_blank">https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_cmake_config-2Dix.cmake-3Frev-3D361280-26r1-3D361279-26r2-3D361280-26view-3Ddiff&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=rA1dpiQ5BP19dSBWl_-62q5HoYRz-RZJ3dPBh30g_uQ&s=KhAFSUB3GQ9iUyo13QjW6oigXazyWHCRLwror8QxA0k&e=</a><br>
    >      ><br>
    >     ==============================================================================<br>
    >      > --- llvm/trunk/cmake/config-ix.cmake (original)<br>
    >      > +++ llvm/trunk/cmake/config-ix.cmake Tue May 21 10:56:45 2019<br>
    >      > @@ -554,6 +554,22 @@ find_program(GOLD_EXECUTABLE NAMES ${LLV<br>
    >      >   set(LLVM_BINUTILS_INCDIR "" CACHE PATH<br>
    >      >       "PATH to binutils/include containing plugin-api.h for gold<br>
    >     plugin.")<br>
    >      ><br>
    >      > +if(CMAKE_GENERATOR STREQUAL "Ninja")<br>
    >      > +  include(CMakeNInjaFindMake)<br>
    >      > +  if(CMAKE_MAKE_PROGRAM)<br>
    >      > +    execute_process(COMMAND ${CMAKE_MAKE_PROGRAM} --version<br>
    >      > +      OUTPUT_VARIABLE NINJA_VERSION<br>
    >      > +      OUTPUT_STRIP_TRAILING_WHITESPACE)<br>
    >      > +    set(NINJA_VERSION ${NINJA_VERSION} CACHE STRING "Ninja<br>
    >     version number" FORCE)<br>
    >      > +  endif()<br>
    >      > +endif()<br>
    >      > +<br>
    >      > +if(CMAKE_GENERATOR STREQUAL "Ninja" AND<br>
    >      > +    NINJA_VERSION VERSION_GREATER_EQUAL "1.9.0" AND<br>
    >      > +    CMAKE_HOST_APPLE AND CMAKE_HOST_SYSTEM_VERSION<br>
    >     VERSION_GREATER "15.6.0")<br>
    >      > +  set(LLVM_TOUCH_STATIC_LIBRARIES ON)<br>
    >      > +endif()<br>
    >      > +<br>
    >      >   if(CMAKE_HOST_APPLE AND APPLE)<br>
    >      >     if(NOT CMAKE_XCRUN)<br>
    >      >       find_program(CMAKE_XCRUN NAMES xcrun)<br>
    >      ><br>
    >      > Modified: llvm/trunk/cmake/modules/AddLLVM.cmake<br>
    >      > URL:<br>
    >     <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_cmake_modules_AddLLVM.cmake-3Frev-3D361280-26r1-3D361279-26r2-3D361280-26view-3Ddiff&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=rA1dpiQ5BP19dSBWl_-62q5HoYRz-RZJ3dPBh30g_uQ&s=5Q0wz4FpwyhhgdEiCCD_VhDUsWgiJtNYbfwjnIAtq7o&e=" target="_blank">https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_cmake_modules_AddLLVM.cmake-3Frev-3D361280-26r1-3D361279-26r2-3D361280-26view-3Ddiff&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=rA1dpiQ5BP19dSBWl_-62q5HoYRz-RZJ3dPBh30g_uQ&s=5Q0wz4FpwyhhgdEiCCD_VhDUsWgiJtNYbfwjnIAtq7o&e=</a><br>
    >      ><br>
    >     ==============================================================================<br>
    >      > --- llvm/trunk/cmake/modules/AddLLVM.cmake (original)<br>
    >      > +++ llvm/trunk/cmake/modules/AddLLVM.cmake Tue May 21 10:56:45 2019<br>
    >      > @@ -596,6 +596,18 @@ function(llvm_add_library name)<br>
    >      >       llvm_externalize_debuginfo(${name})<br>
    >      >       llvm_codesign(${name} ENTITLEMENTS ${ARG_ENTITLEMENTS})<br>
    >      >     endif()<br>
    >      > +  # clang and newer versions of ninja use high-resolutions<br>
    >     timestamps,<br>
    >      > +  # but older versions of libtool on Darwin don't, so the<br>
    >     archive will<br>
    >      > +  # often get an older timestamp than the last object that was added<br>
    >      > +  # or updated.  To fix this, we add a custom command to touch<br>
    >     archive<br>
    >      > +  # after it's been built so that ninja won't rebuild it<br>
    >     unnecessarily<br>
    >      > +  # the next time it's run.<br>
    >      > +  if(ARG_STATIC AND LLVM_TOUCH_STATIC_LIBRARIES)<br>
    >      > +    add_custom_command(TARGET ${name}<br>
    >      > +      POST_BUILD<br>
    >      > +      COMMAND touch<br>
    >     ${LLVM_LIBRARY_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}${name}${CMAKE_STATIC_LIBRARY_SUFFIX}<br>
    >      > +      )<br>
    >      > +  endif()<br>
    >      >   endfunction()<br>
    >      ><br>
    >      >   function(add_llvm_install_targets target)<br>
    >      ><br>
    >      ><br>
    >      > _______________________________________________<br>
    >      > llvm-commits mailing list<br>
    >      > <a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a> <mailto:<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>><br>
    >      > <a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.llvm.org_cgi-2Dbin_mailman_listinfo_llvm-2Dcommits&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=rA1dpiQ5BP19dSBWl_-62q5HoYRz-RZJ3dPBh30g_uQ&s=btGrNIyNTgucno_4eyTPO6Txeqc41GZpUBT3K1Ok3gA&e=" target="_blank">
https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.llvm.org_cgi-2Dbin_mailman_listinfo_llvm-2Dcommits&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=rA1dpiQ5BP19dSBWl_-62q5HoYRz-RZJ3dPBh30g_uQ&s=btGrNIyNTgucno_4eyTPO6Txeqc41GZpUBT3K1Ok3gA&e=</a><br>
    >      ><br>
    > <br>
<br>
    _______________________________________________<br>
    llvm-commits mailing list<br>
    <a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br>
    <a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.llvm.org_cgi-2Dbin_mailman_listinfo_llvm-2Dcommits&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=rA1dpiQ5BP19dSBWl_-62q5HoYRz-RZJ3dPBh30g_uQ&s=btGrNIyNTgucno_4eyTPO6Txeqc41GZpUBT3K1Ok3gA&e=" target="_blank">
https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.llvm.org_cgi-2Dbin_mailman_listinfo_llvm-2Dcommits&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=rA1dpiQ5BP19dSBWl_-62q5HoYRz-RZJ3dPBh30g_uQ&s=btGrNIyNTgucno_4eyTPO6Txeqc41GZpUBT3K1Ok3gA&e=</a><br>
<br>
<u></u><u></u></p>
</blockquote>
</div>
</div>
</div>
</div>

</blockquote></div></div>