[CMake] some comments to the new INSTALL() command

Brad King brad.king at kitware.com
Wed Mar 8 00:28:01 EST 2006


Alexander Neundorf wrote:
> some thoughts to the new INSTALL command: 
>  
> -with the old INSTALL commands the paths were always interpreted relative 
> to CMAKE_INSTALL_PREFIX. At least I got used to writing "/bin", "/lib" 
> etc. I.e. that the install dir always starts with a "/", so that 
> "${CMAKE_INSTALL_PREFIX}${LIB_INSTALL_DIR}"  gives the absolute target 
> directory. 
> Now it is very nice that one can specify different install paths with the 
> new INSTALL command. But in order to be installed relative to 
> CMAKE_INSTALL_PREFIX, now "bin" and "lib" have to be used instead of 
> "/bin" and "/lib". Just because people are used to start the path with a 
> "/" I think this may lead to problems for many people where stuff is 
> suddenly installed to /bin and /lib instead of 
> ${CMAKE_INSTALL_PREFIX}/[bin|lib]. 
> Maybe it would be better to have two different arguments, "DESTINATION" 
> and "ABS_DESTINATION" or something like this. 

New people learning CMake will just use the new INSTALL command and 
learn the new interface.  Current users that change to the INSTALL 
command will probably do so to use some of its features and will thus 
have read the documentation.  A few people might mistakenly install 
things to the wrong place the first time they write the call to the 
command but will quickly discover the mistake and fix it.  I don't want 
to skrew with the nice new interface to save a few people 5 minutes of 
debugging.  I always thought the old interface's leading slash was both 
confusing and unnecessary anyway which is why the new interface does not 
have it.

> -it is not possible to set the owner and group, at least I didn't find it 
>  
> -how about a INSTALL( [REMOVE|REMOVE_DIR] ...) to remove files during 
> installation ? 

I've updated the generic install feature request bug entry with these:

http://www.cmake.org/Bug/bug.php?op=show&bugid=2691

For now you should be able to use the INSTALL(SCRIPT) mode to run 
whatever you want.  CMAKE_COMMAND is now available from these scripts.

-Brad


More information about the CMake mailing list