On Monday 11 April 2011 21:55:48 Alexander Neundorf wrote: > On Monday 11 April 2011, Tomasz Grobelny wrote: > > On Mon, 11 Apr 2011 09:01:09 -0700, Tyler <ty...@cryptio.net> wrote: > > > On Mon, Apr 11, 2011 at 8:54 AM, Tomasz Grobelny > > > > > > <tom...@grobelny.oswiecenia.net> wrote: > > >> Ok, but is there a way to achieve the same effect so that the user can > > >> type just "make install" and not know anything about DESTDIR > > environment > > >> variable (provided he knows about MYDESTDIR)? Maybe it is possible to > > >> put this "DESTDIR=$MYDESTDIR" in the generated Makefiles somehow... > > > > > > If I understand your use case right (which I might not as you haven't > > > described what you're trying to do, just how you're trying to do it), > > > maybe you can just override CMAKE_INSTALL_PREFIX. > > > > > > If you go this route, check the archives because of the whole > > > _INITIALIZED_TO_DEFAULT aspect of that particular cache variable. > > > > I already tried playing with CMAKE_INSTALL_PREFIX but the problem was > > that value of MYDESTDIR was read (and saved to CMAKE_INSTALL_PREFIX) > > only when configuring first time. That's why DESTDIR mechanism comes > > closer to what I'm trying to achieve. My use case is something like > > that: > > 1. User has some default MYDESTDIR to non writable location. > > 2. User executes "cmake . && make install". > > 3. The installation fails because user has no rights to $MYDESTDIR. > > 4. User changes MYDESTDIR to another location (writable this time). > > 5. User executes "make install" once again and it should succeed. > > > > Of course the user could set MYDESTDIR to correct location before > > building but people often forget that. Now the tricky part is that users > > are already used to this mechanism (for particular variable name, called > > MYDESTDIR here). So taking different environment variable instead of > > DESTDIR would allow me to minimize confusion among users. Otherwise I'll > > just tell them to set yet another variable (DESTDIR). But I would like > > to avoid that if at all possible. > > DESTDIR has a different purpose. > Installing to DESTDIR does not necessarily lead to a working and correct > installation, mainly when paths are involved, like e.g. RPATH settings. > Assuming that CMAKE_INSTALL_PREFIX would be /opt/foo, your executable might > get /opt/foo/lib as RPATH, also when installed to $DESTDIR/opt/foo. > So they will not have a correct RPATH. > You really should set CMAKE_INSTALL_PREFIX. > I'd like to. But CMAKE_INSTALL_PREFIX does not get recomputed when I change MYDESTDIR and try to do "make install" again. Or at least I don't know how to make it behave this way. Besides, I don't use RPATH (at least not explicitely, hopefully cmake is not doing anything nasty behind the scenes). -- Regards, Tomasz Grobelny _______________________________________________ Powered by www.kitware.com
Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake