Eric Bavier <[email protected]> skribis: > Andreas Enge <[email protected]> writes: > >> In a discussion we had yesterday, Ludovic mentioned the need to pass a >> special flag to the cmake configure phase to modify the rpath of installed >> libraries, as done for the package slim. I then noticed I needed the same >> flag for clucene. The attached patch applies it globally in the cmake build >> system. > > We can't set CMAKE_SKIP_BUILD_RPATH=OFF as it prevents tests from > working, since the executables and libraries would not have references > to libraries in the build tree (I ran the lapack build e.g. with your > patch, and all the tests fail).
OK, that’s what I feared. > Your post prompted me to look into this matter a bit more. I found for > the gmsh package I posted yesterday that I could add the following to > #:configuration-flags instead of using the add-libs-to-runpath phase:: > > "-DCMAKE_INSTALL_RPATH_USE_LINK_PATH:BOOL=ON" > ,(string-append "-DCMAKE_INSTALL_RPATH=" > (assoc-ref %outputs "out") > "/lib") [...] > I tried substituting the above two flags in for the lapack, gmsh, and > slim builds, and the RUNPATHS seem to be at least as good as when using > the manual augment-rpath method. Good, it looks like this is what ‘cmake-build-system’ should do by default. One concern though: if a package installs libraries in a place other than $out/lib, like $out/lib/PACKAGE, this will break. In practice, do CMake packages always install libraries in $libdir? Thanks for helping out, Ludo’.
