[CMake] LINK_DIRECTORY Problem With Implicit Paths

Eskandar Ensafi Ensafi at SpaceComputer.Com
Tue Feb 22 16:56:46 EST 2011


Hello,

 

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.

 

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?

 

Thank you,

 

Eskandar

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20110222/87e911d8/attachment.htm>


More information about the CMake mailing list