| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- /*============================================================================
- CMake - Cross Platform Makefile Generator
- Copyright 2000-2009 Kitware, Inc., Insight Software Consortium
- Distributed under the OSI-approved BSD License (the "License");
- see accompanying file Copyright.txt for details.
- This software is distributed WITHOUT ANY WARRANTY; without even the
- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- See the License for more information.
- ============================================================================*/
- #ifndef cmCPackIFWPackage_h
- #define cmCPackIFWPackage_h
- #include <cmStandardIncludes.h>
- class cmCPackComponent;
- class cmCPackComponentGroup;
- class cmCPackIFWInstaller;
- class cmCPackIFWGenerator;
- class cmXMLWriter;
- /** \class cmCPackIFWPackage
- * \brief A single component to be installed by CPack IFW generator
- */
- class cmCPackIFWPackage
- {
- public:
- // Types
- enum CompareTypes
- {
- CompareNone = 0x0,
- CompareEqual = 0x1,
- CompareLess = 0x2,
- CompareLessOrEqual = 0x3,
- CompareGreater = 0x4,
- CompareGreaterOrEqual = 0x5
- };
- struct CompareStruct
- {
- CompareStruct();
- unsigned int Type;
- std::string Value;
- };
- struct DependenceStruct
- {
- DependenceStruct();
- DependenceStruct(const std::string &dependence);
- std::string Name;
- CompareStruct Compare;
- std::string NameWithCompare() const;
- bool operator < (const DependenceStruct &other) const
- {
- return Name < other.Name;
- }
- };
- public:
- // [Con|De]structor
- /**
- * Construct package
- */
- cmCPackIFWPackage();
- public:
- // Configuration
- /// Human-readable name of the component
- std::string DisplayName;
- /// Human-readable description of the component
- std::string Description;
- /// Version number of the component
- std::string Version;
- /// Date when this component version was released
- std::string ReleaseDate;
- /// Domain-like identification for this component
- std::string Name;
- /// File name of a script being loaded
- std::string Script;
- /// List of license agreements to be accepted by the installing user
- std::vector<std::string> Licenses;
- /// Priority of the component in the tree
- std::string SortingPriority;
- /// Set to true to preselect the component in the installer
- std::string Default;
- /// Set to true to hide the component from the installer
- std::string Virtual;
- /// Determines that the package must always be installed
- std::string ForcedInstallation;
- public:
- // Internal implementation
- const char* GetOption(const std::string& op) const;
- bool IsOn(const std::string& op) const;
- bool IsVersionLess(const char *version);
- bool IsVersionGreater(const char *version);
- bool IsVersionEqual(const char *version);
- std::string GetComponentName(cmCPackComponent *component);
- void DefaultConfiguration();
- int ConfigureFromOptions();
- int ConfigureFromComponent(cmCPackComponent *component);
- int ConfigureFromGroup(cmCPackComponentGroup *group);
- int ConfigureFromGroup(const std::string &groupName);
- void GeneratePackageFile();
- // Pointer to generator
- cmCPackIFWGenerator* Generator;
- // Pointer to installer
- cmCPackIFWInstaller* Installer;
- // Collection of dependencies
- std::set<cmCPackIFWPackage*> Dependencies;
- // Collection of unresolved dependencies
- std::set<DependenceStruct*> AlienDependencies;
- // Patch to package directory
- std::string Directory;
- protected:
- void WriteGeneratedByToStrim(cmXMLWriter& xout);
- };
- #endif // cmCPackIFWPackage_h
|