<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 12 (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:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
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-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal>Hello,<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>We have different versions of Intel C, C++ and Fortran compilers installed side by side on a 64-bit Linux system which is used to develop, debug and run both 32- and 64-bit applications. I want my executable’s runtime library path (RPATH) to point to the version of the Intel libraries that it was originally built with, such that when the system’s LD_LIBRARY_PATH changes to a newer version or when we want to run 32-bit applications on a 64-bit system, we’re not forced to change our LD_LIBRARY_PATH. To this end, I would like the RPATH embedded in my executables to point to the appropriate versions and architectures of the required shared libraries.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Unfortunately, CMake automatically strips any CMAKE_<Language>_IMPLICIT_LINK_DIRECTORIES from LINK_DIRECTORIES. Even if I explicitly add the appropriate paths via the LINK_DIRECTORIES(…) command, CMake removes all language-specific implicit paths from my link path. I am also using CMAKE_INSTALL_RPATH_USE_LINK_PATH=1 so that my installed RPATH is the same as my compile-time link path, but after CMake strips all the implicit paths, this option is rendered useless. One workaround is to create symbolic links to the desired paths so that CMake won’t recognize and remove them, but I don’t want to be forced to create new symbolic links each time we upgrade our compilers. Is there a clean way around this?<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Thank you,<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Eskandar<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>