On Saturday 17 November 2012, Alexander Neundorf wrote: > Hi, > > maybe I am missing something, but here we go: > > on 64bit ArchLinux installations, /lib64/ is a symlink to /usr/lib/. > /bin/ and /usr/bin/ are normal directories, no symlinks. > > Now if a Config.cmake files is installed into /usr/lib/foo/, and references > other files of its installations using relative paths from its own location > to e.g. /usr/bin/ (../../bin/ ), there is breakage. > > CMake finds FooConfig.cmake in /lib64/foo/FooConfig.cmake (which it seems > to search before /usr/lib). Then it goes ../../bin/, but doesn't end up in > /usr/bin/, where e.g. some executable is located, but instead it goes to > /lib64/foo/../../bin/, which is /bin/, but the expected executable is not > there, and so the FooConfig.cmake file fails. > > I'm not sure what the right way to deal with this is. > Is this only on ArchLinux ? > If so, maybe the best thing to do is to tell the ArchLinux developers to > set up their symlinks in a different way ? > Having e.g. /usr/lib64/ point to /usr/lib/ would make it work I think. > Or if /lib64/ points to /usr/lib/, then maybe /bin/ should also point to > /usr/bin/. > Other ideas ? > Or can CMake be tweaked to handle this ?
How about this: cmake could check whether /lib64 is a symlink to /usr/lib, and if so, skip /lib64 ? This will break Config files installed to /lib64/cmake/, but I would assume Config.cmake files in /usr/lib/cmake/ are much more common than in /lib64/cmake/. Alex -- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers
