Details
-
Improvement
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
proton-c-0.31.0
-
Debian Linux; build Proton then Dispatch into each their own `DESTDIR`. This is done by our "layered build" system, https://gitlab.com/arpa2/mkhere/-/blob/master/qpid_proton.sh and https://gitlab.com/arpa2/mkhere/-/blob/master/qpid_dispatch.sh
Description
This sequency installs well:
cmake make make DESTDIR=/some/where install
However, further use of the installation fails, because of strict dependencies on the installed paths in files like `ProtonConfig.cmake`:
set_target_properties(Proton::core PROPERTIES IMPORTED_LOCATION "/usr/local/lib/libqpid-proton-core.so" IMPORTED_LOCATION_DEBUG "/usr/local/lib/libqpid-proton-core.so" INTERFACE_INCLUDE_DIRECTORIES "${Proton_Core_INCLUDE_DIRS}")
*What would work:* First switch to the `DESTDIR`, then continue building something like Qpid Dispatch Router.
*Solution:* Use relative directories, like in:
# Compute the installation prefix relative to this file. get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH) get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) if(_IMPORT_PREFIX STREQUAL "/") set(_IMPORT_PREFIX "") endif()
*Work-around:* An unhappy quickfix is
find /some/where -name *.cmake -exec \ sed -i "s+/usr/+/some/where/usr/+g" {} \;
Attachments
Issue Links
- causes
-
PROTON-2433 The work for PROTON-2254 seems to have broken modern use of CMake
- Closed