summaryrefslogtreecommitdiffstats
path: root/Source/CPack/cmCPackComponentGroup.h
diff options
context:
space:
mode:
authorDavid Cole <david.cole@kitware.com>2008-07-08 15:52:25 (GMT)
committerDavid Cole <david.cole@kitware.com>2008-07-08 15:52:25 (GMT)
commit83ec8c35933439305895b8569b2125a7e091fc57 (patch)
treeee94a4f9cdd476a27a4ad466269c214dc1254d6c /Source/CPack/cmCPackComponentGroup.h
parent75154920793c285cd00a4ff225654d693158b679 (diff)
downloadCMake-83ec8c35933439305895b8569b2125a7e091fc57.zip
CMake-83ec8c35933439305895b8569b2125a7e091fc57.tar.gz
CMake-83ec8c35933439305895b8569b2125a7e091fc57.tar.bz2
ENH: Further refinement of the CPack components functionality from Doug Gregor.
Details: ========== - New cpack_add_component, cpack_add_component_group, and cpack_add_install_type "commands" defined as macros in the CPack module. - Documentation for all of the variables and commands in the CPack module. - Added get_cmake_property(... COMPONENTS) to CMake to ask for the names of all components. Used in the CPack module to automatically build component-based installers. (Set CPACK_MONOLITHIC_INSTALL to turn off component-based installation). - A group can declare its PARENT_GROUP, to build an arbitrary hierarchy of groups. - New CPack command cpack_configure_downloads, which creates an installer that downloads only the selected components on-the-fly. Those components marked DOWNLOADED will be separate packages downloaded on-the-fly (or, all packages can be marked as such with the ALL option to cpack_configure_downloads). Individual components are compressed with ZIP at installer-creation time and downloaded/uncompressed by the installer as needed. This feature is only available on Windows with NSIS at the moment. - NSIS installers can install themselves and enable the "Change" button in Add/Remove programs, allowing users to go back and install or remove components. This can be disabled through cpack_configure_downloads, because it's only really useful is most of the application's functionality is in downloaded components. - Bug fix: automatically install everything whose COMPONENT was not specified (it's a hidden, required group) - Bug fix: fixed removal of components when re-running the NSIS installer and unchecking components - Bug fix: NSIS installers now only install/remove the minimal number of files when re-run to update the installation (or by clicking "Change" in Add/Remove programs)
Diffstat (limited to 'Source/CPack/cmCPackComponentGroup.h')
-rw-r--r--Source/CPack/cmCPackComponentGroup.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/Source/CPack/cmCPackComponentGroup.h b/Source/CPack/cmCPackComponentGroup.h
index 2e1703c..d080a87 100644
--- a/Source/CPack/cmCPackComponentGroup.h
+++ b/Source/CPack/cmCPackComponentGroup.h
@@ -70,12 +70,20 @@ public:
/// Whether this component defaults to "disabled".
bool IsDisabledByDefault : 1;
+ /// Whether this component should be downloaded on-the-fly. If false,
+ /// the component will be a part of the installation package.
+ bool IsDownloaded : 1;
+
/// A description of this component.
std::string Description;
/// The installation types that this component is a part of.
std::vector<cmCPackInstallationType *> InstallationTypes;
+ /// If IsDownloaded is true, the name of the archive file that
+ /// contains the files that are part of this component.
+ std::string ArchiveFile;
+
/// The components that this component depends on.
std::vector<cmCPackComponent *> Dependencies;
@@ -95,6 +103,8 @@ public:
class cmCPackComponentGroup
{
public:
+ cmCPackComponentGroup() : ParentGroup(0) { }
+
/// The name of the group (used to reference the group).
std::string Name;
@@ -112,6 +122,12 @@ public:
/// The components within this group.
std::vector<cmCPackComponent*> Components;
+
+ /// The parent group of this component group (if any).
+ cmCPackComponentGroup *ParentGroup;
+
+ /// The subgroups of this group.
+ std::vector<cmCPackComponentGroup*> Subgroups;
};
#endif