You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "ASF GitHub Bot (Jira)" <ji...@apache.org> on 2021/08/10 11:58:00 UTC

[jira] [Commented] (PROTON-2254) Relative paths in CMake share

    [ https://issues.apache.org/jira/browse/PROTON-2254?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17396633#comment-17396633 ] 

ASF GitHub Bot commented on PROTON-2254:
----------------------------------------

jiridanek commented on pull request #317:
URL: https://github.com/apache/qpid-proton/pull/317#issuecomment-895967538


   This seems to work at this point. There is one little problem. In `version.h`, there is `#define PN_INSTALL_PREFIX` that is used for deriving path to the json connect config file. The path there ends up being absolute.
   
   The most reasonable anchor point to make it relative is probably the location of proton .so library; however that would not work for static builds, and looking up the lib is quite messy. So I propose to ignore this one remaining instance of absolute paths in the install.
   
   I got a review on this on https://github.com/apache/qpid-proton/pull/312 already, and I fixed there the objection (there is no longer any PIC present; but it can be still opted in on CMake command line if needed).


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


> Relative paths in CMake share
> -----------------------------
>
>                 Key: PROTON-2254
>                 URL: https://issues.apache.org/jira/browse/PROTON-2254
>             Project: Qpid Proton
>          Issue Type: Improvement
>          Components: 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
>            Priority: Minor
>              Labels: cmake, install, proton
>   Original Estimate: 0.25h
>  Remaining Estimate: 0.25h
>
> 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-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org