MantisBT - CMake
View Issue Details
0000149CMakepublic2003-08-15 15:342004-03-29 11:11
Anton Deguet 
System Admin 
urgentfeaturealways
closedfixed 
 
 
0000149: Installing multiple "unknown" files or custom install target
I need to install multiple files which are not yet created and pretty much unknown. The best exemple is Doxygen or latex2html which generate some .html and .png amongst others. I tried to have a INSTALL_FILES(/doc *.html) and succeded with the right quotes to get a Makefile with "install-sh *.html doc". Unfortunately, install-sh can only install one file. Would it be possible to modify install-sh so that it would install multiple files? (the default "install" on Linux supports multiple files installation).

If this is not possible, how can I add a "custom command" for the install target in the generated Makefile?
No tags attached.
Issue History

Notes
(0000107)
Brad King   
2003-08-19 09:55   
It's too late to add this feature to CMake 1.8. The install support is being re-written for the next version and will solve this problem.

For now, one can probably use ADD_CUSTOM_TARGET to add a "my_install" target that runs one's own shell-script to install the extra files.
(0000276)
Anton Deguet   
2003-11-17 15:58   
Hello,

I've used ADD_CUSTOM_TARGET for a while and I recently bought the Mastering CMake book. In there I found something that I believed could be useful: ADD_CUSTOM_CONMAND with POST_BUILD.

I currently have:
ADD_CUSTOM_TARGET(install_html
                  ${BASH} ${cisstDoc_BINARY_DIR}/install-files.sh
                  ${cisstDocLatex_BINARY_DIR}/*.png
                {CMAKE_INSTALL_PREFIX}/share/cisst/doc/latex)

which works. Now, instead of having to type make; make install; make install_html, I am trying to do:

ADD_CUSTOM_COMMAND(
  TARGET install
  POST_BUILD
  COMMAND ${BASH}
  ARGS ${cisstDoc_BINARY_DIR}/install-files.sh
        ${cisstDocLatex_BINARY_DIR}/*.png
        ${CMAKE_INSTALL_PREFIX}/share/cisst/doc/latex)

The idea is that the make install should trigger my custom command. Unfortunately, it doesn't add anything to the Makefile. I wonder if this is because the target "install" is not user defined. Is it possible to added tie a custom command to a non "user" defined?

Anton
(0000823)
System Admin   
2004-03-29 11:11   
This should be done with the new install framework, using PRE_INSTALL_SCRIPT and POST_INSTALL_SCRIPT target properties. Look at SimpleInstall test.