Hi,
Alex Merry wrote: >> 1) I see it does `set(CMAKE_INSTALL_RPATH "${_abs_LIB_INSTALL_DIR}")` . >> Shouldn't that be `set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_RPATH; >> ${_abs_LIB_INSTALL_DIR}"), IOW, shouldn't the additional path be >> appended (or >> prepended...) to the existing RPATH?! > > Quite possibly. Sounds like I'll be putting up a RR then. > >> 2) I did find that I have to set >> `-DCMAKE_INSTALL_RPATH="/opt/local/lib/x86_64- >> linux-gnu\;/opt/local/lib"` on Linux, presumably because Kubuntu's >> multi-arch >> configuration is detected. Why does the build system not pick that fact >> up, >> while it clearly does pick up the non-standard Qt library locations? >> Maybe it >> considers /opt/local/lib/x86_64-linux-gnu a system location because >> cmake itself >> is installed under /opt/local ? > > The mechanism by which packages are found is completely independent, and > (more or less) involves CMake searching the filesystem recursively for > *Config.cmake files, which then tell it where to find, say, Qt. Our Hmm, yes, it looks like I was mixing up things. My Qt .cmake files are in cmake's standard search path (${prefix}/lib/cmake) but I do have to set the appropriate variable to ensure that those scripts use the correct qmake. From what I understand everything Qt5-related is actually determined from qmake's location and/our output. > RPATH handling logic isn't clever enough to account for found packages, > though. Actually, *your* (as in KF5's) RPATH handling is clever enough to account for the required Qt5 rpath. > > It's possible that CMake could figure out the necessary RPATH settings > itself. It's worth re-visiting this, I think. I think it'd be hard to determine what's necessary and/or sufficient in this context - it'd have to determine file name of each library and then attempt to dlopen it using the name only (if that succeeds it is not necessary to add the library's path to the RPATH)? OTOH, it could add all paths to shared libraries that are not stock/default paths to RPATH. >> the commandline. If that means KDECMakeSettings.cmake doesn't do its >> job in my >> set-up, then the mystery stands how KF5 builds manage to add >> /opt/local/libexec/qt5/lib to the rpath ... > > No. The fact that it is in the CMakeCache.txt at all is just an artifact > of you passing it on the command line. So the mystery stands ... R. _______________________________________________ Kde-buildsystem mailing list Kde-buildsystem@kde.org https://mail.kde.org/mailman/listinfo/kde-buildsystem