1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163
|
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
file LICENSE.rst or https://cmake.org/licensing for details. */
#pragma once
#include "cmConfigure.h" // IWYU pragma: keep
#include <map>
#include <string>
#include <vector>
#include "cmCPackIFWCommon.h"
class cmCPackIFWPackage;
class cmCPackIFWRepository;
/** \class cmCPackIFWInstaller
* \brief A binary installer to be created CPack IFW generator
*/
class cmCPackIFWInstaller : public cmCPackIFWCommon
{
public:
// Types
using PackagesMap = std::map<std::string, cmCPackIFWPackage*>;
using RepositoriesVector = std::vector<cmCPackIFWRepository*>;
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;
/// Filename for a watermark
std::string Watermark;
/// Filename for a banner
std::string Banner;
/// Filename for a background
std::string Background;
/// Wizard style name
std::string WizardStyle;
/// Filename for a style sheet
std::string StyleSheet;
/// Wizard width
std::string WizardDefaultWidth;
/// Wizard height
std::string WizardDefaultHeight;
/// Set to false if the widget listing installer pages on the left side
/// of the wizard should not be shown
std::string WizardShowPageList;
/// Title color
std::string TitleColor;
/// 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 target directory should not be deleted when
/// uninstalling
std::string RemoveTargetDir;
/// Set to true if command line interface features should be disabled
std::string DisableCommandLineInterface;
/// 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<std::string> Resources;
/// A list of images to be shown on PerformInstallationPage.
std::vector<std::string> ProductImages;
/// A list of associated URLs linked to images to be shown on
/// PerformInstallationPage.
std::vector<std::string> ProductImageUrls;
/// Command executed after the installer is done if the user accepts the
/// action
std::string RunProgram;
/// Arguments passed to the program specified in <RunProgram>
std::vector<std::string> RunProgramArguments;
/// Text shown next to the check box for running the program after the
/// installation
std::string RunProgramDescription;
#ifdef __APPLE__
/// Code signing identity for signing the generated app bundle
std::string SigningIdentity;
#endif
public:
// Internal implementation
void ConfigureFromOptions();
void GenerateInstallerFile();
void GeneratePackageFiles();
PackagesMap Packages;
RepositoriesVector RemoteRepositories;
std::string Directory;
protected:
void printSkippedOptionWarning(std::string const& optionName,
std::string const& optionValue);
};
|