/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying file Copyright.txt or https://cmake.org/licensing for details. */ #ifndef cmCPackIFWInstaller_h #define cmCPackIFWInstaller_h #include // IWYU pragma: keep #include #include #include class cmCPackIFWGenerator; class cmCPackIFWPackage; class cmCPackIFWRepository; class cmXMLWriter; /** \class cmCPackIFWInstaller * \brief A binary installer to be created CPack IFW generator */ class cmCPackIFWInstaller { public: // Types typedef std::map PackagesMap; typedef std::vector RepositoriesVector; public: // Constructor /** * Construct installer */ cmCPackIFWInstaller(); public: // Configuration /// Name of the product being installed std::string Name; /// Version number of the product being installed std::string Version; /// Name of the installer as displayed on the title bar std::string Title; /// Publisher of the software (as shown in the Windows Control Panel) std::string Publisher; /// URL to a page that contains product information on your web site std::string ProductUrl; /// Filename for a custom installer icon std::string InstallerApplicationIcon; /// Filename for a custom window icon std::string InstallerWindowIcon; /// Filename for a logo std::string Logo; /// Name of the default program group in the Windows Start menu std::string StartMenuDir; /// Default target directory for installation std::string TargetDir; /// Default target directory for installation with administrator rights std::string AdminTargetDir; /// Filename of the generated maintenance tool std::string MaintenanceToolName; /// Filename for the configuration of the generated maintenance tool std::string MaintenanceToolIniFile; /// Set to true if the installation path can contain non-ASCII characters std::string AllowNonAsciiCharacters; /// Set to false if the installation path cannot contain space characters std::string AllowSpaceInPath; /// Filename for a custom installer control script std::string ControlScript; /// List of resources to include in the installer binary std::vector Resources; 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); void ConfigureFromOptions(); void GenerateInstallerFile(); void GeneratePackageFiles(); cmCPackIFWGenerator* Generator; PackagesMap Packages; RepositoriesVector RemoteRepositories; std::string Directory; protected: void WriteGeneratedByToStrim(cmXMLWriter& xout); }; #endif // cmCPackIFWInstaller_h