What you are seeing is the expected behavior. You can get a relocatable package if all your dependencies (in your case libcap) have themselves relocatable package config files with exported targets. Then you package should make use of find_dependency macro.
On Fri, Oct 16, 2015 at 4:56 PM, Zac Bergquist <zbergquis...@gmail.com> wrote: > I've created a sample project to replicate my issue in hopes that it would > make it easier to troubleshoot. > > Thanks for any help, > Zac > > https://github.com/zmb3/cmaketest > > On Mon, Oct 12, 2015 at 8:53 AM, Zac Bergquist <zbergquis...@gmail.com> > wrote: > >> Hello, >> >> I'm trying to fix a project so that its output is relocatable. The >> project is a library that itself depends on libpcap. My goal is to be able >> to import the library into my CMake application and have CMake >> automatically link libpcap with it. >> >> I'm using a toolchain file that invokes an ARM cross compiler, sets >> CMAKE_INSTALL_PREFIX and appends it to CMAKE_FIND_ROOT_PATH. This all >> seems to work well. >> >> What I'm seeing is that the exported files that get installed to >> CMAKE_INSTALL_PREFIX contain absolute paths to libpcap on my machine, which >> make them useless to other team members. >> >> The first thing I changed was to use CONFIGURE_PACKAGE_CONFIG_FILE >> instead of CONFIGURE_FILE. This got rid of absolute paths in the generated >> CMake config file. >> >> However, I still have absolute paths in the CMake target import file that >> gets generated. The IMPORTED_LINK_INTERFACE_LIBRARIES target property has >> an absolute path instead of one relative to CMAKE_INSTALL_PREFIX. >> >> I've read the "Creating Relocatable Packages" [1] section of the CMake >> packages documentation. I'm pretty sure this is what I'm running into, but >> I don't quite understand how to solve it. The documentation says that I >> should be using imported targets, but I'm not sure how to do so. The >> library is just using its own FindPCAP.cmake file to locate libpcap. >> >> Does anyone know of an example of a CMake package that imports other >> libraries? I could also try to create a minimal example project with this >> setup if it would be helpful. >> >> Thanks, >> Zac >> >> [1]: >> https://cmake.org/cmake/help/v3.3/manual/cmake-packages.7.html#creating-relocatable-packages >> >> > > -- > > Powered by www.kitware.com > > Please keep messages on-topic and check the CMake FAQ at: > http://www.cmake.org/Wiki/CMake_FAQ > > Kitware offers various services to support the CMake community. For more > information on each offering, please visit: > > CMake Support: http://cmake.org/cmake/help/support.html > CMake Consulting: http://cmake.org/cmake/help/consulting.html > CMake Training Courses: http://cmake.org/cmake/help/training.html > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/cmake > -- Guillaume Dumont ========================= dumont.guilla...@gmail.com
-- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake