Darryl L. Pierce commented on PROTON-445:

CMAKE_INSTALL_PREFIX is always defined; i.e., there is never a run of Cmake 
where it's not a defined variable. So my question would be what should the 
default install behavior be for language bindings if no CMAKE_INSTALL_PREFIX is 
specified in the command line? Should the Ruby, Perl and Python bindings 
install under /usr/local or to the site packages location for that language? We 
can't depend on CMAKE_INSTALL_PREFIX to tell us what there user wants WRT the 
language bindings since it's always present.

That's why I suggested individual language paths for users who want to override 
them. For someone who uses RVM for Ruby development, or Virtual Environment for 
Python,  they would want to be able to install the language binding to their 
virtual environment's location but not the whole Proton codebase there. RVM 
defaults to putting your Ruby versions under $HOME/.rvm/environments and VE 
puts them under any arbitrary directory where the user chooses. If 
CMAKE_INSTALL_PREFIX trumps the Ruby VM then the user would have to do some 
extra work to switch environments.

> Binding installation ignores prefix
> -----------------------------------
>                 Key: PROTON-445
>                 URL: https://issues.apache.org/jira/browse/PROTON-445
>             Project: Qpid Proton
>          Issue Type: Bug
>          Components: proton-c
>    Affects Versions: 0.5
>            Reporter: Justin Ross
>         Attachments: what-a-mess.txt
> It allows you *prepend* to the install prefix, but it gives you no way afaict 
> to actually change the prefix.
> This is the opposite of nice.  If you set a prefix for your build *and* you 
> try to get your bindings slotted in with them, via DESTDIR, you get this:
> # cmake -DCMAKE_INSTALL_PREFIX:PATH=/opt/myplace 
> /var/tmp/jross/baker/proton/source
> # make install DESTDIR=/opt/myplace
> /opt/myplace/usr/lib/python/*python files*
> /opt/myplace/opt/myplace/lib/*c files*
> ^^ Note "/opt/myplace/opt/myplace", the first from DESTDIR, the second from 
> What it is doing now is simply abuse of DESTDIR.  DESTDIR is intended to be a 
> mechanism for staged installs (packaging systems use this), and it cannot 
> function correctly as an override for prefix.
> http://www.gnu.org/prep/standards/html_node/DESTDIR.html
> My proposed solution to this is to stop this madness: make the binding 
> install honor CMAKE_INSTALL_PREFIX.  Let the developer be responsible for 
> choosing the right location for his or her distribution.

This message was sent by Atlassian JIRA

Reply via email to