Hello, Use ExternalProject to build libpcap as part of your project. Make sure you use $ORIGIN in rpath everywhere. Install your application (and your bundled libpcap) to /opt to avoid polluting the system.
On Mon, Oct 19, 2015 at 10:37 PM, Zac Bergquist <zbergquis...@gmail.com> wrote: > Thank you for your reply, Guillaume. > > I understand that this is the expected behavior. I even linked to the > documentation that says this is the expected behavior. What I don't > understand is how to resolve it. Are you saying it is not possible to > create a relocatable package unless all dependencies are also using CMake? > That doesn't seem right. > > Should I be trying to write a package config file for libpcap, or is there > a better way to approach this? > > On Sat, Oct 17, 2015 at 8:19 AM, Guillaume Dumont < > dumont.guilla...@gmail.com> wrote: > >> 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 > -- Pau Garcia i Quiles http://www.elpauer.org (Due to my workload, I may need 10 days to answer)
-- 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