[CMake] Support for multiple components in cpack (reloaded)

Eric Noulard eric.noulard at gmail.com
Sat Aug 21 08:10:04 EDT 2010


Hi All,

I finally rebased my previous work on component support for Archive Generators
(i.e. STGZ  TBZ2  TGZ   TZ    ZIP)

(see also ML discussions:
  http://www.cmake.org/pipermail/cmake/2010-July/038575.html
  http://www.cmake.org/pipermail/cmake/2010-August/038663.html
  http://www.cmake.org/pipermail/cmake-developers/2010-August/000413.html)

Up-to-date patches may be retrieved from
 http://public.kitware.com/Bug/view.php?id=10736
or pulled from
 http://github.com/TheErk/CMake/tree/CPackArchiveGenerator-ComponentSupport
 (beware of the fact that this branch has been rebased so
  do not try to update re-pull it from scratch)

I think this work may now be merged in CMake upstream but I need some
final testing.
The implemented features are the following:

1) ALL archive generators (STGZ  TBZ2  TGZ   TZ    ZIP) are now
supporting component install

2) The default behavior is to generate 1 package for each COMPONENT GROUP
    (see http://paraview.org/Wiki/CMake:Component_Install_With_CPack#Grouping_Components)

3) 3 new CPACK_COMPONENTS var have been introduced:

CPACK_COMPONENTS_ALL_GROUPS_IN_ONE_PACKAGE
CPACK_COMPONENTS_ALL_IN_ONE_PACKAGE
CPACK_COMPONENTS_IGNORE_GROUPS

All those vars may be set at CPack time e.g:
 cpack -D CPACK_COMPONENTS_IGNORE_GROUPS=1 -G ZIP

They change the number and the contents of the generated packages:
    3.a) CPACK_COMPONENTS_ALL_GROUPS_IN_ONE_PACKAGE=1
          means you want to get a single package whose content
          is the merge of all components GROUPS

    3.b) CPACK_COMPONENTS_ALL_IN_ONE_PACKAGE=1
           means you want to get a single package whose content
           is the merge of all COMPONENTS

     3.c) CPACK_COMPONENTS_IGNORE_GROUPS
           means you want to get 1 package per COMPONENT
           (the default is 1 package per GROUP)

The difference between 3.a) and 3.b) m
CPACK_COMPONENTS_ALL

-- 
Erk
Membre de l'April - « promouvoir et défendre le logiciel libre » -
http://www.april.org


More information about the CMake mailing list