[CMake] install target

Timenkov Yuri ytimenkov at parallels.com
Sat May 3 11:45:42 EDT 2008


On Saturday 03 May 2008 19:41:02 Alin M Elena wrote:
> Hi,
>
> Is there any way to add a dependency to install or preinstall targets?
>
> The idea is simple. I have a custom target that builds the documentation
> from sources.
> When I package or install I want to be sure that I have up-to-date
> documentation.
>
> Alin
Hi,

There were many discussions on this subject, but I don't remember final 
solution. I suppose, in your case it is better to add special target via 
ADD_CUSTOM_COMMAND, where OUTPUT is your documentation file(s), and 
MAIN_DEPENDENCY/DEPENDS are source files. Later you can install output file 
as usually. This is based on several points:
1) "install" ensures that everything is built by executing make all target.
2) ADD_CUSTOM_COMMAND while used properly sets correct dependencies between 
target file and it's sources, so if anything changed, CMake will rebuild this 
and all dependent targets.
3) INSTALL command will install generated target.

Of course, this will not work with ADD_CUSTOM_TARGET.

So the drawback is that your documentation will be built (if something has 
changed, that is actually only dependencies will be checked) every time you 
run make. I suppose in CMake this is handled by some kind 
of "BUILD_Documentation" variables to speed-up regular development.

And if you need something really exotic at install time, you can refer to 
INSTALL(CODE/SCRIPT) commands :).

Yuri


More information about the CMake mailing list