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’.

Reply via email to