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