123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
- file Copyright.txt or https://cmake.org/licensing for details. */
- #ifndef cmCPackComponentGroup_h
- #define cmCPackComponentGroup_h
- #include "cmConfigure.h" // IWYU pragma: keep
- #include <string>
- #include <vector>
- class cmCPackComponentGroup;
- /** \class cmCPackInstallationType
- * \brief A certain type of installation, which encompasses a
- * set of components.
- */
- class cmCPackInstallationType
- {
- public:
- /// The name of the installation type (used to reference this
- /// installation type).
- std::string Name;
- /// The name of the installation type as displayed to the user.
- std::string DisplayName;
- /// The index number of the installation type. This is an arbitrary
- /// numbering from 1 to the number of installation types.
- unsigned Index;
- };
- /** \class cmCPackComponent
- * \brief A single component to be installed by CPack.
- */
- class cmCPackComponent
- {
- public:
- cmCPackComponent()
- : Group(nullptr)
- , IsRequired(true)
- , IsHidden(false)
- , IsDisabledByDefault(false)
- , IsDownloaded(false)
- , TotalSize(0)
- {
- }
- /// The name of the component (used to reference the component).
- std::string Name;
- /// The name of the component as displayed to the user.
- std::string DisplayName;
- /// The component group that contains this component (if any).
- cmCPackComponentGroup* Group;
- /// Whether this component group must always be installed.
- bool IsRequired : 1;
- /// Whether this component group is hidden. A hidden component group
- /// is always installed. However, it may still be shown to the user.
- bool IsHidden : 1;
- /// 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 file to pass to --component-plist when using the
- /// productbuild generator.
- std::string Plist;
- /// The components that this component depends on.
- std::vector<cmCPackComponent*> Dependencies;
- /// The components that depend on this component.
- std::vector<cmCPackComponent*> ReverseDependencies;
- /// The list of installed files that are part of this component.
- std::vector<std::string> Files;
- /// The list of installed directories that are part of this component.
- std::vector<std::string> Directories;
- /// Get the total installed size of all of the files in this
- /// component, in bytes. installDir is the directory into which the
- /// component was installed.
- unsigned long GetInstalledSize(const std::string& installDir) const;
- /// Identical to GetInstalledSize, but returns the result in
- /// kilobytes.
- unsigned long GetInstalledSizeInKbytes(const std::string& installDir) const;
- private:
- mutable unsigned long TotalSize;
- };
- /** \class cmCPackComponentGroup
- * \brief A component group to be installed by CPack.
- */
- class cmCPackComponentGroup
- {
- public:
- cmCPackComponentGroup()
- : ParentGroup(nullptr)
- {
- }
- /// The name of the group (used to reference the group).
- std::string Name;
- /// The name of the component as displayed to the user.
- std::string DisplayName;
- /// The description of this component group.
- std::string Description;
- /// Whether the name of the component will be shown in bold.
- bool IsBold : 1;
- /// Whether the section should be expanded by default
- bool IsExpandedByDefault : 1;
- /// 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
|