[CMake] CPack integration

Alexander Neundorf a.neundorf-work at gmx.net
Mon Aug 2 16:28:55 EDT 2010


On Monday 02 August 2010, Eric Noulard wrote:
> 2010/8/1 Dennis Schridde <devurandom at gmx.net>:
> > Hello!
> >
> > I just started experimenting with CPack. According to the docs and
> >
> > code it is to be used like this:
> >> set(CPACK_... ...)
> >
> > include(CPack)
> >
> > This, however, does not allow making use of the defaults
> > present in CPack.cmake. (Most notably CPACK_SOURCE_IGNORE_FILES.)
> > I had to
> > copy the default value of that variable out of CPack.cmake into my own
> > CMakeLists.txt, which does not seem very clean.
> >
> > Can you add a way of
> > configuring CPack that allows appending or modifying default values?
> > What
> >
> > comes to my mind is a semantic like this:
> >> include(CPack)
> >> set(CPACK_...
> >
> > "${CPACK_...} ...")
> >
> >> cpack_config()
>
> I think this is an interesting idea.
> May be it's worth a feature request on the tracker:
> http://public.kitware.com/Bug/my_view_page.php
>
> This would even be better with a patch proposal :-)
>
> My personal point of view with your idea is that
> since we most most probably want to maintain backward compatibility
> it would even be better if we can do
>
> 1 - set(CPACK_...
> 2 - include(CPack)
> 3 - set(CPACK_...)
> 4 - cpack_update_config() or cpack_reconfig()
>
> that way 1, 3 and 4 are optional just as today.
> 3 and 4 would bring what you suggest.


Maybe this should be then more something like:

1 - set(CPACK_...
2 - include(UseCPack)
3 - set(CPACK_...)
4 - cpack_configure()

where UseCPack.cmake would contain just a part of the current CPack.cmake, 
i.e. the part which sets the default values, which would be split out into a 
file shared by both CPack.cmake and UseCPack.cmake, and a macro/function 
which then actually generates the files for cpack.
This way it should be possible to avoid any backwards compatibility issues.

Alex


More information about the CMake mailing list