KDE/kdelibs

Alexander Neundorf neundorf at kde.org
Wed Mar 8 22:40:00 CET 2006


On Wednesday 08 March 2006 22:17, you wrote:
> Alexander Neundorf wrote:
> > On Wednesday 08 March 2006 15:23, Brad King wrote:
> >>OSX does not have RPATHs.  You will need to use the INSTALL_NAME_DIR
> >>target property on the shared libraries to get this working.
> >
> > How does INSTALL_NAME_DIR work ? The same as RPATH ? Is it also a list of
> > directories ? If it is used on e.g. libDCOP.dylib, how does this help
> > dcopidl2ccp in finding libDCOP.dylib ?
>
> It sets the directory portion of the "install_name" of a shared library.
>   This stores for example in libDCOP.dylib the full path to the library.
>   When dcopidl2cpp links to the library it copies this full path as a
> library to load.  At runtime the dynamic loader searches for the
> libraries using the "install_name"s stored in the executable, one for
> each library.  If the install_name is a full path then it is used
> directly.  If it is a relative path it is searched relative to each
> entry of DYLD_LIBRARY_PATH.  It may also contain a keyword like
> "@executable_path/../lib/libDCOP.dylib".
>
> CMake by default sets the install_name of a library in the build tree to
> be the full path to its build tree location.  When installing targets
> CMake uses the command "install_name_tool" to change the directory part
> (not the filename) of the install_name of each target to that specified
> by the target's INSTALL_NAME_DIR target property.  For each library that
> an executable links it also changes the executable's copy of that
> library's install_name so that it may be found in the installed location.

How is this affected by the RPATh related options ?
AFAIK CMAKE_SKIP_RPATH disabled the install name too.
How about SKIP_BUILD_RPATH and BUILD_WITH_INSTALL_RPATH ?
Apparently they have some effect, since otherwise David wouldn't have seen any 
changes.

So, just to make sure:
by default, cmake sets the INSTALL_NAME_DIR to the build dir when building, 
and sets it to the contents of CMAKE_INSTALL_NAME_DIR when installing, with 
CMAKE_INSTALL_NAME_DIR being empty by default ?

Bye
Alex
-- 
Work: alexander.neundorf AT jenoptik.com - http://www.jenoptik-los.de
Home: neundorf AT kde.org                - http://www.kde.org
      alex AT neundorf.net               - http://www.neundorf.net


More information about the Kde-buildsystem mailing list