[ https://issues.apache.org/jira/browse/PROTON-2254?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17436735#comment-17436735 ]
Robbie Gemmell commented on PROTON-2254: ---------------------------------------- Raised PROTON-2450 for continuing with https://github.com/apache/qpid-proton/pull/335. > Relative paths in CMake share > ----------------------------- > > Key: PROTON-2254 > URL: https://issues.apache.org/jira/browse/PROTON-2254 > Project: Qpid Proton > Issue Type: Improvement > Components: build, cpp-binding, proton-c > Affects Versions: proton-c-0.31.0 > Environment: 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 > Reporter: Rick van Rein > Assignee: Jiri Daněk > Priority: Minor > Labels: cmake, install, proton > Fix For: proton-c-0.36.0 > > Original Estimate: 0.25h > Time Spent: 4h > Remaining Estimate: 0h > > This sequency installs well: > {noformat} > cmake > make > make DESTDIR=/some/where install > {noformat} > However, further use of the installation fails, because of strict > dependencies on the *installed* paths in files like `ProtonConfig.cmake`: > {noformat} > 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}") > {noformat} > **What would work:** First switch to the `DESTDIR`, then continue building > something like Qpid Dispatch Router. > **Solution:** Use relative directories, like in: > {noformat} > # 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() > {noformat} > **Work-around:** An unhappy quickfix is > {noformat} > find /some/where -name *.cmake -exec \ > sed -i "s+/usr/+/some/where/usr/+g" {} \; > {noformat} -- This message was sent by Atlassian Jira (v8.3.4#803005) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org