Le Mon, 12 May 2008 15:12:06 +0200, Erik Sjölund <[EMAIL PROTECTED]> a écrit :
> On Sat, 2008-05-10 at 13:40 +0200, Eric Noulard wrote: > > 2008/5/7 Timenkov Yuri <[EMAIL PROTECTED]>: > > > > > Also, bunch of problems with building from non-root account, can > > > be solved by setting CPACK_SET_DESTDIR option. > > > > You are right and I think we can make this the default behavior for > > CPäckRPM. > > > > I did file a bug+patch for this: > > http://public.kitware.com/Bug/view.php?id=7000 > > > > Following that link, there is a nice example of installing files > outside /usr in an rpm. > > [EMAIL PROTECTED]:/tmp/y$ rpm -qlp /tmp/y/myscript-1.0.rpm > /opt > /opt/sbin > /opt/sbin/myabsolutescript > /usr > /usr/local > /usr/local/sbin > /usr/local/sbin/myscript > > But if I have an additional requirement that a normal user should be > able to install the software in his home directory like this, > > cmake -DCMAKE_INSTALL_PREFIX=/home/erik /tmp/myscript-1.0-src && make > && make install CMAKE_INSTALL_PREFIX is only used for file which are not installed using "absolute path" (myscript in the example) and this is the wanted/expected behavior. However you can relocate the installation using DESTDIR with make install (just as CPack does) Just replace your: make install with DESTDIR=/home/erik make install Note that DESTDIR will be prepend for ALL installed file so you may prefer to set INSTALL_PREFIX as "" cmake -DCMAKE_INSTALL_PREFIX="" /tmp/myscript-1.0-src && make && DESTDIR=/home/erik make install > > I get the error: > > ---------- > CMake Error at cmake_install.cmake:40 (FILE): > file cannot create directory: /opt/sbin. Maybe need administrative > privileges. > ---------- > > Is there a way to a the same time fullfill these needs? > * the need to install files outside /usr in an rpm The question is do you need BOTH absolute and relative (to CMAKE_INSTALL_PREFIX) installed file in your project. > * the need for a non-root user to be able to install the software in > his home directory? Use either CMAKE_INSTALL_PREFIX if your project does not have absolute path file install or use DESTDIR if it does. If you use both your will have relative path installed file which will be in: <DESTDIR>/<CMAKE_INSTALL_PREFIX>/relativefile whereas absolute path installed file will be in: <DESTDIR>/abolute/path/file -- Erk _______________________________________________ CMake mailing list [email protected] http://www.cmake.org/mailman/listinfo/cmake
