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
> # 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.
> 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