<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-GB link="#0563C1" vlink="#954F72"><div class=WordSection1><p class=MsoNormal>Hi<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Short question: if we have a library/include files installed both in the usual system locations and outside, how do we force CMake to find the latter? (without modifying the CMake files of the project).<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Motivation:<o:p></o:p></p><p class=MsoNormal>We’re trying to make a SuperBuild that builds/downloads a specific version of various packages (such as Boost and GTest). Our motivation is to have complete control of the version. We don’t want to install this in standard locations to avoid clashes, root permissions etc.  So let’s say we install our versions in ~/our_stuff/lib, ~/our_stuff/include etc<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>It seems very hard (and sometimes impossible) however to let future find_packages find our own versions as opposed to the system ones. From <a href="https://cmake.org/cmake/help/latest/command/find_library.html">https://cmake.org/cmake/help/latest/command/find_library.html</a> I thought that doing something like this would work<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>cmake ../ -DCMAKE_INSTALL_PREFIX=~/our_stuff<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>but the system version of boost etc are still found first (it does work if there is no system version of the library). In the case of Boost, even <o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>cmake ../ -DCMAKE_INSTALL_PREFIX=~/our_stuff -DBOOST_ROOT=~/our_stuff<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>doesn’t help (tested on Linux). I have to set BOOST_INCLUDEDIR for instance. As every Find*.cmake has its own conventions of specifying cmake/environment variables, and some don’t at all, this just gets unfeasible.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I know about NO_DEFAULT_PATH, NO_CMAKE_SYSTEM_PATH etc options for find_package, but this would need modification of CMake files in the dependent packages which is quite undesirable for us.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Any suggestions?<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Thanks<o:p></o:p></p><p class=MsoNormal>Kris<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>