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
_______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
