[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] build: cmake: Add input libraries to the rpath.
From: |
Andreas Enge |
Subject: |
Re: [PATCH] build: cmake: Add input libraries to the rpath. |
Date: |
Sun, 27 Apr 2014 10:59:27 +0200 |
User-agent: |
Mutt/1.5.23 (2014-03-12) |
On Fri, Apr 25, 2014 at 12:44:32PM -0500, Eric Bavier wrote:
> 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).
Yes, I noticed the same problem with lapack.
> 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 would defer to the cmake wiki page you linked above for a full
> explanation, but briefly: The CMAKE_INSTALL_RPATH_USE_LINK_PATH tells
> cmake to include in the installed rpath all of the directories of
> libraries it has linked into the library or executable, and the
> CMAKE_INSTALL_RPATH tells cmake that in addition there are libraries in
> the current project whose directory also needs to be added to the rpath.
Excellent, so we could drop all patchelf occurrences!
On Sat, Apr 26, 2014 at 10:52:52AM +0200, Ludovic Courtès wrote:
> One concern though: if a package installs libraries in a place other
> than $out/lib, like $out/lib/PACKAGE, this will break.
I think that Eric's following sentence gives the answer:
> 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.
There is still the possibility of adding an augment-rpath phase manually
if a problem occurs, or maybe simply adding a second flag
"-DCMAKE_INSTALL_RPATH".
I will give it a try and commit a corresponding patch if everything works.
Andreas