cmCPackIFWInstaller.h 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
  2. file Copyright.txt or https://cmake.org/licensing for details. */
  3. #ifndef cmCPackIFWInstaller_h
  4. #define cmCPackIFWInstaller_h
  5. #include "cmConfigure.h" // IWYU pragma: keep
  6. #include "cmCPackIFWCommon.h"
  7. #include <map>
  8. #include <string>
  9. #include <vector>
  10. class cmCPackIFWPackage;
  11. class cmCPackIFWRepository;
  12. /** \class cmCPackIFWInstaller
  13. * \brief A binary installer to be created CPack IFW generator
  14. */
  15. class cmCPackIFWInstaller : public cmCPackIFWCommon
  16. {
  17. public:
  18. // Types
  19. typedef std::map<std::string, cmCPackIFWPackage*> PackagesMap;
  20. typedef std::vector<cmCPackIFWRepository*> RepositoriesVector;
  21. public:
  22. // Constructor
  23. /**
  24. * Construct installer
  25. */
  26. cmCPackIFWInstaller();
  27. public:
  28. // Configuration
  29. /// Name of the product being installed
  30. std::string Name;
  31. /// Version number of the product being installed
  32. std::string Version;
  33. /// Name of the installer as displayed on the title bar
  34. std::string Title;
  35. /// Publisher of the software (as shown in the Windows Control Panel)
  36. std::string Publisher;
  37. /// URL to a page that contains product information on your web site
  38. std::string ProductUrl;
  39. /// Filename for a custom installer icon
  40. std::string InstallerApplicationIcon;
  41. /// Filename for a custom window icon
  42. std::string InstallerWindowIcon;
  43. /// Filename for a logo
  44. std::string Logo;
  45. /// Filename for a watermark
  46. std::string Watermark;
  47. /// Filename for a banner
  48. std::string Banner;
  49. /// Filename for a background
  50. std::string Background;
  51. /// Wizard style name
  52. std::string WizardStyle;
  53. /// Wizard width
  54. std::string WizardDefaultWidth;
  55. /// Wizard height
  56. std::string WizardDefaultHeight;
  57. /// Title color
  58. std::string TitleColor;
  59. /// Name of the default program group in the Windows Start menu
  60. std::string StartMenuDir;
  61. /// Default target directory for installation
  62. std::string TargetDir;
  63. /// Default target directory for installation with administrator rights
  64. std::string AdminTargetDir;
  65. /// Filename of the generated maintenance tool
  66. std::string MaintenanceToolName;
  67. /// Filename for the configuration of the generated maintenance tool
  68. std::string MaintenanceToolIniFile;
  69. /// Set to true if the installation path can contain non-ASCII characters
  70. std::string AllowNonAsciiCharacters;
  71. /// Set to false if the target directory should not be deleted when
  72. /// uninstalling
  73. std::string RemoveTargetDir;
  74. /// Set to false if the installation path cannot contain space characters
  75. std::string AllowSpaceInPath;
  76. /// Filename for a custom installer control script
  77. std::string ControlScript;
  78. /// List of resources to include in the installer binary
  79. std::vector<std::string> Resources;
  80. public:
  81. // Internal implementation
  82. void ConfigureFromOptions();
  83. void GenerateInstallerFile();
  84. void GeneratePackageFiles();
  85. PackagesMap Packages;
  86. RepositoriesVector RemoteRepositories;
  87. std::string Directory;
  88. protected:
  89. void printSkippedOptionWarning(const std::string& optionName,
  90. const std::string& optionValue);
  91. };
  92. #endif // cmCPackIFWInstaller_h