diff options
author | Konstantin Podsvirov <konstantin@podsvirov.pro> | 2014-08-06 15:23:00 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2014-08-11 13:40:28 (GMT) |
commit | ebe8d51b11a2633857317aa1c8fe7ec0527c37eb (patch) | |
tree | c3bd0458fa91e1f32e8ed4da0879e379caf7078b /Source/CPack/IFW/cmCPackIFWInstaller.h | |
parent | 82382479f7d43158d12f75c5ee8dda53edacd8c4 (diff) | |
download | CMake-ebe8d51b11a2633857317aa1c8fe7ec0527c37eb.zip CMake-ebe8d51b11a2633857317aa1c8fe7ec0527c37eb.tar.gz CMake-ebe8d51b11a2633857317aa1c8fe7ec0527c37eb.tar.bz2 |
CPackIFW: Refactor and revise this generator
Split the monolithic cmCPackIFWGenerator source into three parts:
cmCPackIFWGenerator, cmCPackIFWInstaller, and cmCPackIFWPackage
to isolate the implementations somewhat.
Add a COMMON option to the cpack_ifw_configure_component command to make
the data component common to its parent group.
Change the default packaging method to ONE_PACKAGE_PER_COMPONENT.
This is not incompatible because the CPack IFW generator has not
yet been in a release.
Diffstat (limited to 'Source/CPack/IFW/cmCPackIFWInstaller.h')
-rw-r--r-- | Source/CPack/IFW/cmCPackIFWInstaller.h | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/Source/CPack/IFW/cmCPackIFWInstaller.h b/Source/CPack/IFW/cmCPackIFWInstaller.h new file mode 100644 index 0000000..02cd07b --- /dev/null +++ b/Source/CPack/IFW/cmCPackIFWInstaller.h @@ -0,0 +1,84 @@ +/*============================================================================ + 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 cmCPackIFWInstaller_h +#define cmCPackIFWInstaller_h + +#include "cmStandardIncludes.h" + +class cmCPackIFWPackage; +class cmCPackIFWGenerator; + +/** \class cmCPackIFWInstaller + * \brief A binary installer to be created CPack IFW generator + */ +class cmCPackIFWInstaller +{ +public: // Types + + typedef std::map<std::string, cmCPackIFWPackage*> PackagesMap; + +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; + + /// Default target directory for installation + std::string TargetDir; + + /// Default target directory for installation with administrator rights + std::string AdminTargetDir; + +public: // Internal implementation + + const char* GetOption(const std::string& op) const; + + void ConfigureFromOptions(); + + void GenerateInstallerFile(); + + void GeneratePackageFiles(); + + cmCPackIFWGenerator* Generator; + PackagesMap Packages; + std::string Directory; +}; + +#endif // cmCPackIFWInstaller_h |