<div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Wed, Aug 17, 2016 at 1:13 PM John Brawn <<a href="mailto:John.Brawn@arm.com">John.Brawn@arm.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div lang="EN-GB" link="blue" vlink="purple"><div>
<p class="MsoNormal">> In the build dir the generated files are placed in <build-dir>/share/llvm/cmake. After install, in <prefix>/lib/llvm/share/llvm/cmake.<u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
</div></div><div lang="EN-GB" link="blue" vlink="purple"><div><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Really? According to this commit<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:11.0pt;font-family:"Courier New"">------------------------------------------------------------------------<u></u><u></u></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:11.0pt;font-family:"Courier New"">r259821 | olesalscheider | 2016-02-04 20:08:19 +0000 (Thu, 04 Feb 2016) | 8 lines<u></u><u></u></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:11.0pt;font-family:"Courier New""><u></u> <u></u></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:11.0pt;font-family:"Courier New"">Install cmake files to lib/cmake/llvm<u></u><u></u></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:11.0pt;font-family:"Courier New""><u></u> <u></u></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:11.0pt;font-family:"Courier New"">This is the right location for platform-specific files.<u></u><u></u></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:11.0pt;font-family:"Courier New""><u></u> <u></u></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:11.0pt;font-family:"Courier New"">On some distributions (e. g. Exherbo), a package can be installed for several<u></u><u></u></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:11.0pt;font-family:"Courier New"">architectures in parallel, but the architecture-independent files are shared.<u></u><u></u></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:11.0pt;font-family:"Courier New"">Therefore, we must not install architecture-dependent files (like the CMake<u></u><u></u></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:11.0pt;font-family:"Courier New"">config and export files) to share/.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New"">------------------------------------------------------------------------<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">They’re built to <build-dir>/lib/cmake/llvm and installed to <prefix>/lib/cmake/llvm, which matches<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New""><prefix>/(lib/<arch>|lib|share)/cmake/<name>*/          (U)<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">in the cmake documentation you’ve linked.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">(Note: this is trunk, I haven’t looked at 3.x or 4.0)</span></p></div></div></blockquote><div>This is good news. But is this layout suitable to support multiple versions of LLVM?</div><div><br></div><div>Libs are installed to <prefix>/lib, but packages changes that to <prefix>/lib/llvm-X.Y. Should the packaging change also <prefix>/lib/cmake/llvm to <prefix/lib/cmake/llvm-X.Y. If yes, this might cause the same issues with hardcoded/incorrectly assumed paths as I'm having now.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div lang="EN-GB" link="blue" vlink="purple">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm 4.0pt">
<div>
<div style="border:none;border-top:solid #b5c4df 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span lang="EN-US" style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span lang="EN-US" style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> llvm-dev [mailto:<a href="mailto:llvm-dev-bounces@lists.llvm.org" target="_blank">llvm-dev-bounces@lists.llvm.org</a>]
<b>On Behalf Of </b>Pawel Bylica via llvm-dev<br>
<b>Sent:</b> 17 August 2016 11:13<br>
<b>To:</b> llvm-dev; Sylvestre Ledru<br>
<b>Subject:</b> [llvm-dev] RFC: Move cmake shared files<u></u><u></u></span></p>
</div>
</div></div></div><div lang="EN-GB" link="blue" vlink="purple"><div><div style="border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm 4.0pt">
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<p class="MsoNormal">The cmake files generated when building LLVM (including LLVMConfig.cmake) are to support cmake's find_package() [1] function.<u></u><u></u></p>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">In the build dir the generated files are placed in <build-dir>/share/llvm/cmake. After install, in <prefix>/lib/llvm/share/llvm/cmake.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">CMake is not able to find them without a hint. CMake searches these paths on Unix:<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">- <prefix>/lib/llvm/cmake<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">- <prefix>/share/llvm/cmake<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Some distributions try to workaround the problem by moving contents of /lib/llvm/share/llvm/cmake to /share/llvm/cmake, but usually that breaks the configuration included in LLVMConfig.cmake because of some hardcoded paths there.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">I propose to move the generated files to <build-dir>/cmake and install them to <prefix>/lib/llvm/cmake.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">This should also help on Windows, where CMake searches in <prefix>/llvm/cmake.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">- Paweł<u></u><u></u></p>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">[1] <a href="https://cmake.org/cmake/help/v3.0/command/find_package.html" target="_blank">https://cmake.org/cmake/help/v3.0/command/find_package.html</a><u></u><u></u></p>
</div>
</div>
</div>
</div></div></div></blockquote></div></div>