> Von: Brad King <[EMAIL PROTECTED]> ... > CMake has no way to know what the proper RPATH is for external > libraries > in the installed binaries. Again, take my example of using a separate > Qt build tree. KDE would build and install with an rpath pointing at > the Qt build tree instead of the installed Qt. > > CMake is providing an interface to get whatever RPATHs you want into > the installed binary. It is is up to a project's code to produce the > proper path for its distribution. Only the project authors know how > the binaries will finally be distributed and where other libraries will > be located. Well, ok. But how should I do this in practise ? I could add QT_LIBRARY_DIR, no problem. We use xml2, gif, jpeg, jasper, dnssd, zlib, xslt, png, bzip2, cups, agg, libart, pcre and others. When compiling, cmake nicely adds all the RPATH for all these libs installed on the system. To find them out, I would have to manually get the directory component of all used libs and add them to the INSTALL_RPATH variable. I don't see a way how to do this without much manual work and fiddling around. I would have to do this at the end of the top level CMakeLists.txt, and make sure I don't forget any of the libraries used in the whole project. This would suck. Or I could do this for every target separatly. This means I will have to add a bunch of not-so-simple cmake lines for every target. add_executable(foo ${foo_SRCS}) set(foo_RPATH) if (PNG_FOUND) target_link_libraries(foo ${PNG_LIBRARIES}) # won't work, since PNG_LIBRARIES is a list # maybe iterate over it ? get_filename_component(png_RPATH ${PNG_LIBRARIES} PATH) set (foo_RPATH ${foo_RPATH} ${png_RPATH} ) endif (PNG_FOUND) if (PCRE_FOUND) target_link_libraries(foo ${PCRE_LIBRARIES}) get_filename_component(pcre_RPATH ${PCRE_LIBRARIES} PATH) set (foo_RPATH ${foo_RPATH} ${pcrepng_RPATH}) endif (PCRE_FOUND) ... set_target_properties(foo PROPERTIES INSTALL_RPATH "${foo_RPATH}") This wouldn't be nice, especially while OTOH cmake would have no problem collecting these paths. Bye Alex
-- "Feel free" mit GMX FreeMail! Monat für Monat 10 FreeSMS inklusive! http://www.gmx.net _______________________________________________ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake