[ 
https://issues.apache.org/jira/browse/PROTON-2254?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Rick van Rein updated PROTON-2254:
----------------------------------
    Labels: cmake install proton  (was: proton,cmake,destdir)

> 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:
> {{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" {} \;}}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to