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

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

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


   > I think this may need configure_package_config_file(... PATHVARS 
INCLUDEDIR...) and using @PACKAGE_INCLUDEDIR@ inside the .in file to get the 
potentially relocated var.
   
   This works for `cmake.in` files, but not for `pkgconfig.in`. The way cmake 
does the relocation is that it emits cmake code which sets helper variables, 
that are then used in the @PACKAGE_INCLUDEDIR@.
   
   I have a reasonably good solution for this, but my last problem is that 
Irina's RPM specs pass in absolute paths for the libdir and includedir, which I 
need to relativize for use in pkgconfig, like this
   
   
![Screenshot_20210919_102710](https://user-images.githubusercontent.com/442720/133920790-d435d23f-f406-42fc-a168-657a0fb1b665.png)
   
   Hopefully string replacement (replace prefix, take care not to create 
absolute path by mistake) will take care of that.
   
   
https://indico.cern.ch/event/848215/contributions/3591953/attachments/1923018/3181752/HSFPackagingRelocation.pdf


-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


> 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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to