mirror of
https://github.com/reactos/CMake.git
synced 2024-11-27 13:30:39 +00:00
CPackIFW: Add some options
The cpack_ifw_configure_component_group command gained options: - DEPENDS. The cpack_ifw_configure_component and cpack_ifw_configure_component_group commands gained options: - REQUIRES_ADMIN_RIGHTS; - UPDATE_TEXT; - SORTING_PRIORITY; # New name for PRIORITY - DEPENDENCIES; # Alias for DEPENDS - AUTO_DEPEND_ON; - TRANSLATIONS. For both commands PRIORITY option now is depreceted. Please use SORTING_PRIORITY instead.
This commit is contained in:
parent
7b4514fb33
commit
e5089c562c
@ -3,5 +3,19 @@ cpack-ifw-options
|
||||
|
||||
* The :module:`CPackIFW` module :command:`cpack_ifw_configure_component` and
|
||||
:command:`cpack_ifw_configure_component_group` commands gained a new
|
||||
``DEFAULT``, ``VIRTUAL``, ``FORCED_INSTALLATION``, ``DISPLAY_NAME``,
|
||||
``DESCRIPTION`` and ``RELEASE_DATE`` options to more specific configuration.
|
||||
``DEFAULT``, ``VIRTUAL``, ``FORCED_INSTALLATION``, ``REQUIRES_ADMIN_RIGHTS``,
|
||||
``DISPLAY_NAME``, ``UPDATE_TEXT``, ``DESCRIPTION``, ``RELEASE_DATE``,
|
||||
``AUTO_DEPEND_ON`` and ``TRANSLATIONS`` options to more specific
|
||||
configuration.
|
||||
|
||||
* The :module:`CPackIFW` module :command:`cpack_ifw_configure_component`
|
||||
command gained a new ``DEPENDENCIES`` alias for ``DEPENDS`` option.
|
||||
|
||||
* The :module:`CPackIFW` module :command:`cpack_ifw_configure_component_group`
|
||||
command gained a new ``DEPENDS`` option. The ``DEPENDENCIES`` alias also
|
||||
added.
|
||||
|
||||
* The :module:`CPackIFW` module :command:`cpack_ifw_configure_component` and
|
||||
:command:`cpack_ifw_configure_component_group` commands ``PRIORITY``
|
||||
option now is deprecated and will be removed in a future version of CMake.
|
||||
Please use new ``SORTING_PRIORITY`` option instead.
|
||||
|
@ -227,18 +227,21 @@
|
||||
# ::
|
||||
#
|
||||
# cpack_ifw_configure_component(<compname> [COMMON] [ESSENTIAL] [VIRTUAL]
|
||||
# [FORCED_INSTALLATION]
|
||||
# [FORCED_INSTALLATION] [REQUIRES_ADMIN_RIGHTS]
|
||||
# [NAME <name>]
|
||||
# [DISPLAY_NAME <display_name>]
|
||||
# [DESCRIPTION <description>]
|
||||
# [UPDATE_TEXT <update_text>]
|
||||
# [VERSION <version>]
|
||||
# [RELEASE_DATE <release_date>]
|
||||
# [SCRIPT <script>]
|
||||
# [PRIORITY <priority>]
|
||||
# [DEPENDS <com_id> ...]
|
||||
# [PRIORITY|SORTING_PRIORITY <sorting_priority>] # Note: PRIORITY is deprecated
|
||||
# [DEPENDS|DEPENDENCIES <com_id> ...]
|
||||
# [AUTO_DEPEND_ON <comp_id> ...]
|
||||
# [LICENSES <display_name> <file_path> ...]
|
||||
# [DEFAULT <value>]
|
||||
# [USER_INTERFACES <file_path> <file_path> ...])
|
||||
# [USER_INTERFACES <file_path> <file_path> ...]
|
||||
# [TRANSLATIONS <file_path> <file_path> ...])
|
||||
#
|
||||
# This command should be called after :command:`cpack_add_component` command.
|
||||
#
|
||||
@ -260,6 +263,9 @@
|
||||
# It is a equivalent of the ``REQUARED`` option from the
|
||||
# :command:`cpack_add_component` command.
|
||||
#
|
||||
# ``REQUIRES_ADMIN_RIGHTS``
|
||||
# set it if the component needs to be installed with elevated permissions.
|
||||
#
|
||||
# ``NAME``
|
||||
# is used to create domain-like identification for this component.
|
||||
# By default used origin component name.
|
||||
@ -272,6 +278,10 @@
|
||||
# set to rewrite original description configured by
|
||||
# :command:`cpack_add_component` command.
|
||||
#
|
||||
# ``UPDATE_TEXT``
|
||||
# will be added to the component description if this is an update to
|
||||
# the component.
|
||||
#
|
||||
# ``VERSION``
|
||||
# is version of component.
|
||||
# By default used :variable:`CPACK_PACKAGE_VERSION`.
|
||||
@ -283,11 +293,18 @@
|
||||
# is a relative or absolute path to operations script
|
||||
# for this component.
|
||||
#
|
||||
# ``PRIORITY``
|
||||
# ``PRIORITY`` | ``SORTING_PRIORITY``
|
||||
# is priority of the component in the tree.
|
||||
# The ``PRIORITY`` option is deprecated and will be removed in a future
|
||||
# version of CMake. Please use ``SORTING_PRIORITY`` option instead.
|
||||
#
|
||||
# ``DEPENDS``
|
||||
# list of dependency component identifiers in QtIFW_ style.
|
||||
# ``DEPENDS`` | ``DEPENDENCIES``
|
||||
# list of dependency component or component group identifiers in
|
||||
# QtIFW_ style.
|
||||
#
|
||||
# ``AUTO_DEPEND_ON``
|
||||
# list of identifiers of component or component group in QtIFW_ style
|
||||
# that this component has an automatic dependency on.
|
||||
#
|
||||
# ``LICENSES``
|
||||
# pair of <display_name> and <file_path> of license text for this
|
||||
@ -300,7 +317,10 @@
|
||||
# as a value of the ``SCRIPT`` option).
|
||||
#
|
||||
# ``USER_INTERFACES``
|
||||
# a list of <file_path> representing pages to load
|
||||
# is a list of <file_path> ('.ui' files) representing pages to load.
|
||||
#
|
||||
# ``TRANSLATIONS``
|
||||
# is a list of <file_path> ('.qm' files) representing translations to load.
|
||||
#
|
||||
#
|
||||
# .. command:: cpack_ifw_configure_component_group
|
||||
@ -310,17 +330,21 @@
|
||||
# ::
|
||||
#
|
||||
# cpack_ifw_configure_component_group(<groupname> [VIRTUAL]
|
||||
# [FORCED_INSTALLATION]
|
||||
# [FORCED_INSTALLATION] [REQUIRES_ADMIN_RIGHTS]
|
||||
# [NAME <name>]
|
||||
# [DISPLAY_NAME <display_name>]
|
||||
# [DESCRIPTION <description>]
|
||||
# [UPDATE_TEXT <update_text>]
|
||||
# [VERSION <version>]
|
||||
# [RELEASE_DATE <release_date>]
|
||||
# [SCRIPT <script>]
|
||||
# [PRIORITY <priority>]
|
||||
# [PRIORITY|SORTING_PRIORITY <sorting_priority>] # Note: PRIORITY is deprecated
|
||||
# [DEPENDS|DEPENDENCIES <com_id> ...]
|
||||
# [AUTO_DEPEND_ON <comp_id> ...]
|
||||
# [LICENSES <display_name> <file_path> ...]
|
||||
# [DEFAULT <value>]
|
||||
# [USER_INTERFACES <file_path> <file_path> ...])
|
||||
# [USER_INTERFACES <file_path> <file_path> ...]
|
||||
# [TRANSLATIONS <file_path> <file_path> ...])
|
||||
#
|
||||
# This command should be called after :command:`cpack_add_component_group`
|
||||
# command.
|
||||
@ -332,6 +356,10 @@
|
||||
# ``FORCED_INSTALLATION``
|
||||
# if set, then the group must always be installed.
|
||||
#
|
||||
# ``REQUIRES_ADMIN_RIGHTS``
|
||||
# set it if the component group needs to be installed with elevated
|
||||
# permissions.
|
||||
#
|
||||
# ``NAME``
|
||||
# is used to create domain-like identification for this component group.
|
||||
# By default used origin component group name.
|
||||
@ -344,6 +372,10 @@
|
||||
# set to rewrite original description configured by
|
||||
# :command:`cpack_add_component_group` command.
|
||||
#
|
||||
# ``UPDATE_TEXT``
|
||||
# will be added to the component group description if this is an update to
|
||||
# the component group.
|
||||
#
|
||||
# ``VERSION``
|
||||
# is version of component group.
|
||||
# By default used :variable:`CPACK_PACKAGE_VERSION`.
|
||||
@ -355,8 +387,18 @@
|
||||
# is a relative or absolute path to operations script
|
||||
# for this component group.
|
||||
#
|
||||
# ``PRIORITY``
|
||||
# ``PRIORITY`` | ``SORTING_PRIORITY``
|
||||
# is priority of the component group in the tree.
|
||||
# The ``PRIORITY`` option is deprecated and will be removed in a future
|
||||
# version of CMake. Please use ``SORTING_PRIORITY`` option instead.
|
||||
#
|
||||
# ``DEPENDS`` | ``DEPENDENCIES``
|
||||
# list of dependency component or component group identifiers in
|
||||
# QtIFW_ style.
|
||||
#
|
||||
# ``AUTO_DEPEND_ON``
|
||||
# list of identifiers of component or component group in QtIFW_ style
|
||||
# that this component group has an automatic dependency on.
|
||||
#
|
||||
# ``LICENSES``
|
||||
# pair of <display_name> and <file_path> of license text for this
|
||||
@ -370,7 +412,10 @@
|
||||
# the script as a value of the ``SCRIPT`` option).
|
||||
#
|
||||
# ``USER_INTERFACES``
|
||||
# a list of <file_path> representing pages to load
|
||||
# is a list of <file_path> ('.ui' files) representing pages to load.
|
||||
#
|
||||
# ``TRANSLATIONS``
|
||||
# is a list of <file_path> ('.qm' files) representing translations to load.
|
||||
#
|
||||
#
|
||||
# .. command:: cpack_ifw_add_repository
|
||||
@ -711,14 +756,15 @@ macro(cpack_ifw_configure_component compname)
|
||||
|
||||
string(TOUPPER ${compname} _CPACK_IFWCOMP_UNAME)
|
||||
|
||||
set(_IFW_OPT COMMON ESSENTIAL VIRTUAL FORCED_INSTALLATION)
|
||||
set(_IFW_ARGS NAME DISPLAY_NAME DESCRIPTION VERSION RELEASE_DATE SCRIPT PRIORITY DEFAULT)
|
||||
set(_IFW_MULTI_ARGS DEPENDS LICENSES USER_INTERFACES)
|
||||
set(_IFW_OPT COMMON ESSENTIAL VIRTUAL FORCED_INSTALLATION REQUIRES_ADMIN_RIGHTS)
|
||||
set(_IFW_ARGS NAME DISPLAY_NAME DESCRIPTION VERSION RELEASE_DATE SCRIPT PRIORITY SORTING_PRIORITY UPDATE_TEXT DEFAULT)
|
||||
set(_IFW_MULTI_ARGS DEPENDS DEPENDENCIES AUTO_DEPEND_ON LICENSES USER_INTERFACES TRANSLATIONS)
|
||||
cmake_parse_arguments(CPACK_IFW_COMPONENT_${_CPACK_IFWCOMP_UNAME} "${_IFW_OPT}" "${_IFW_ARGS}" "${_IFW_MULTI_ARGS}" ${ARGN})
|
||||
|
||||
_cpack_ifw_resolve_script(CPACK_IFW_COMPONENT_${_CPACK_IFWCOMP_UNAME}_SCRIPT)
|
||||
_cpack_ifw_resolve_lisenses(CPACK_IFW_COMPONENT_${_CPACK_IFWCOMP_UNAME}_LICENSES)
|
||||
_cpack_ifw_resolve_file_list(CPACK_IFW_COMPONENT_${_CPACK_IFWCOMP_UNAME}_USER_INTERFACES)
|
||||
_cpack_ifw_resolve_file_list(CPACK_IFW_COMPONENT_${_CPACK_IFWCOMP_UNAME}_TRANSLATIONS)
|
||||
|
||||
set(_CPACK_IFWCOMP_STR "\n# Configuration for IFW component \"${compname}\"\n")
|
||||
|
||||
@ -751,14 +797,15 @@ macro(cpack_ifw_configure_component_group grpname)
|
||||
|
||||
string(TOUPPER ${grpname} _CPACK_IFWGRP_UNAME)
|
||||
|
||||
set(_IFW_OPT VIRTUAL FORCED_INSTALLATION)
|
||||
set(_IFW_ARGS NAME DISPLAY_NAME DESCRIPTION VERSION RELEASE_DATE SCRIPT PRIORITY DEFAULT)
|
||||
set(_IFW_MULTI_ARGS LICENSES USER_INTERFACES)
|
||||
set(_IFW_OPT VIRTUAL FORCED_INSTALLATION REQUIRES_ADMIN_RIGHTS)
|
||||
set(_IFW_ARGS NAME DISPLAY_NAME DESCRIPTION VERSION RELEASE_DATE SCRIPT PRIORITY SORTING_PRIORITY UPDATE_TEXT DEFAULT)
|
||||
set(_IFW_MULTI_ARGS DEPENDS DEPENDENCIES AUTO_DEPEND_ON LICENSES USER_INTERFACES TRANSLATIONS)
|
||||
cmake_parse_arguments(CPACK_IFW_COMPONENT_GROUP_${_CPACK_IFWGRP_UNAME} "${_IFW_OPT}" "${_IFW_ARGS}" "${_IFW_MULTI_ARGS}" ${ARGN})
|
||||
|
||||
_cpack_ifw_resolve_script(CPACK_IFW_COMPONENT_GROUP_${_CPACK_IFWGRP_UNAME}_SCRIPT)
|
||||
_cpack_ifw_resolve_lisenses(CPACK_IFW_COMPONENT_GROUP_${_CPACK_IFWGRP_UNAME}_LICENSES)
|
||||
_cpack_ifw_resolve_file_list(CPACK_IFW_COMPONENT_GROUP_${_CPACK_IFWGRP_UNAME}_USER_INTERFACES)
|
||||
_cpack_ifw_resolve_file_list(CPACK_IFW_COMPONENT_GROUP_${_CPACK_IFWGRP_UNAME}_TRANSLATIONS)
|
||||
|
||||
set(_CPACK_IFWGRP_STR "\n# Configuration for IFW component group \"${grpname}\"\n")
|
||||
|
||||
|
@ -62,6 +62,13 @@ cmCPackIFWPackage::DependenceStruct::DependenceStruct(
|
||||
} else if ((pos = dependence.find('>')) != std::string::npos) {
|
||||
Compare.Type = CompareGreater;
|
||||
Compare.Value = dependence.substr(pos + 1);
|
||||
} else if ((pos = dependence.find('-')) != std::string::npos) {
|
||||
Compare.Type = CompareNone;
|
||||
Compare.Value = dependence.substr(pos + 1);
|
||||
}
|
||||
size_t dashPos = dependence.find('-');
|
||||
if (dashPos != std::string::npos) {
|
||||
pos = dashPos;
|
||||
}
|
||||
Name = pos == std::string::npos ? dependence : dependence.substr(0, pos);
|
||||
}
|
||||
@ -74,6 +81,10 @@ std::string cmCPackIFWPackage::DependenceStruct::NameWithCompare() const
|
||||
|
||||
std::string result = Name;
|
||||
|
||||
if (Compare.Type != CompareNone || !Compare.Value.empty()) {
|
||||
result += "-";
|
||||
}
|
||||
|
||||
if (Compare.Type == CompareLessOrEqual) {
|
||||
result += "<=";
|
||||
} else if (Compare.Type == CompareGreaterOrEqual) {
|
||||
@ -154,11 +165,14 @@ void cmCPackIFWPackage::DefaultConfiguration()
|
||||
Script = "";
|
||||
Licenses.clear();
|
||||
UserInterfaces.clear();
|
||||
Translations.clear();
|
||||
SortingPriority = "";
|
||||
UpdateText = "";
|
||||
Default = "";
|
||||
Essential = "";
|
||||
Virtual = "";
|
||||
ForcedInstallation = "";
|
||||
RequiresAdminRights = "";
|
||||
}
|
||||
|
||||
// Defaul configuration (all in one package)
|
||||
@ -245,24 +259,6 @@ int cmCPackIFWPackage::ConfigureFromComponent(cmCPackComponent* component)
|
||||
}
|
||||
}
|
||||
|
||||
// QtIFW dependencies
|
||||
if (const char* option = this->GetOption(prefix + "DEPENDS")) {
|
||||
std::vector<std::string> deps;
|
||||
cmSystemTools::ExpandListArgument(option, deps);
|
||||
for (std::vector<std::string>::iterator dit = deps.begin();
|
||||
dit != deps.end(); ++dit) {
|
||||
DependenceStruct dep(*dit);
|
||||
if (!Generator->Packages.count(dep.Name)) {
|
||||
bool hasDep = Generator->DependentPackages.count(dep.Name) > 0;
|
||||
DependenceStruct& depRef = Generator->DependentPackages[dep.Name];
|
||||
if (!hasDep) {
|
||||
depRef = dep;
|
||||
}
|
||||
AlienDependencies.insert(&depRef);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Licenses
|
||||
if (const char* option = this->GetOption(prefix + "LICENSES")) {
|
||||
Licenses.clear();
|
||||
@ -280,6 +276,11 @@ int cmCPackIFWPackage::ConfigureFromComponent(cmCPackComponent* component)
|
||||
// Priority
|
||||
if (const char* option = this->GetOption(prefix + "PRIORITY")) {
|
||||
SortingPriority = option;
|
||||
cmCPackLogger(
|
||||
cmCPackLog::LOG_WARNING, "The \"PRIORITY\" option is set "
|
||||
<< "for component \"" << component->Name << "\", but there option is "
|
||||
<< "deprecated. Please use \"SORTING_PRIORITY\" option instead."
|
||||
<< std::endl);
|
||||
}
|
||||
|
||||
// Default
|
||||
@ -352,6 +353,12 @@ int cmCPackIFWPackage::ConfigureFromGroup(cmCPackComponentGroup* group)
|
||||
// Priority
|
||||
if (const char* option = this->GetOption(prefix + "PRIORITY")) {
|
||||
SortingPriority = option;
|
||||
cmCPackLogger(
|
||||
cmCPackLog::LOG_WARNING, "The \"PRIORITY\" option is set "
|
||||
<< "for component group \"" << group->Name
|
||||
<< "\", but there option is "
|
||||
<< "deprecated. Please use \"SORTING_PRIORITY\" option instead."
|
||||
<< std::endl);
|
||||
}
|
||||
|
||||
return ConfigureFromPrefix(prefix);
|
||||
@ -420,6 +427,79 @@ int cmCPackIFWPackage::ConfigureFromPrefix(const std::string& prefix)
|
||||
ReleaseDate = value;
|
||||
}
|
||||
|
||||
// Sorting priority
|
||||
option = prefix + "SORTING_PRIORITY";
|
||||
if (IsSetToEmpty(option)) {
|
||||
SortingPriority.clear();
|
||||
} else if (const char* value = GetOption(option)) {
|
||||
SortingPriority = value;
|
||||
}
|
||||
|
||||
// Update text
|
||||
option = prefix + "UPDATE_TEXT";
|
||||
if (IsSetToEmpty(option)) {
|
||||
UpdateText.clear();
|
||||
} else if (const char* value = GetOption(option)) {
|
||||
UpdateText = value;
|
||||
}
|
||||
|
||||
// Translations
|
||||
option = prefix + "TRANSLATIONS";
|
||||
if (IsSetToEmpty(option)) {
|
||||
Translations.clear();
|
||||
} else if (const char* value = this->GetOption(option)) {
|
||||
Translations.clear();
|
||||
cmSystemTools::ExpandListArgument(value, Translations);
|
||||
}
|
||||
|
||||
// QtIFW dependencies
|
||||
std::vector<std::string> deps;
|
||||
option = prefix + "DEPENDS";
|
||||
if (const char* value = this->GetOption(option)) {
|
||||
cmSystemTools::ExpandListArgument(value, deps);
|
||||
}
|
||||
option = prefix + "DEPENDENCIES";
|
||||
if (const char* value = this->GetOption(option)) {
|
||||
cmSystemTools::ExpandListArgument(value, deps);
|
||||
}
|
||||
for (std::vector<std::string>::iterator dit = deps.begin();
|
||||
dit != deps.end(); ++dit) {
|
||||
DependenceStruct dep(*dit);
|
||||
if (Generator->Packages.count(dep.Name)) {
|
||||
cmCPackIFWPackage& depPkg = Generator->Packages[dep.Name];
|
||||
dep.Name = depPkg.Name;
|
||||
}
|
||||
bool hasDep = Generator->DependentPackages.count(dep.Name) > 0;
|
||||
DependenceStruct& depRef = Generator->DependentPackages[dep.Name];
|
||||
if (!hasDep) {
|
||||
depRef = dep;
|
||||
}
|
||||
AlienDependencies.insert(&depRef);
|
||||
}
|
||||
|
||||
// Automatic dependency on
|
||||
option = prefix + "AUTO_DEPEND_ON";
|
||||
if (IsSetToEmpty(option)) {
|
||||
AlienAutoDependOn.clear();
|
||||
} else if (const char* value = this->GetOption(option)) {
|
||||
std::vector<std::string> depsOn;
|
||||
cmSystemTools::ExpandListArgument(value, depsOn);
|
||||
for (std::vector<std::string>::iterator dit = depsOn.begin();
|
||||
dit != depsOn.end(); ++dit) {
|
||||
DependenceStruct dep(*dit);
|
||||
if (Generator->Packages.count(dep.Name)) {
|
||||
cmCPackIFWPackage& depPkg = Generator->Packages[dep.Name];
|
||||
dep.Name = depPkg.Name;
|
||||
}
|
||||
bool hasDep = Generator->DependentPackages.count(dep.Name) > 0;
|
||||
DependenceStruct& depRef = Generator->DependentPackages[dep.Name];
|
||||
if (!hasDep) {
|
||||
depRef = dep;
|
||||
}
|
||||
AlienAutoDependOn.insert(&depRef);
|
||||
}
|
||||
}
|
||||
|
||||
// Visibility
|
||||
option = prefix + "VIRTUAL";
|
||||
if (IsSetToEmpty(option)) {
|
||||
@ -455,6 +535,16 @@ int cmCPackIFWPackage::ConfigureFromPrefix(const std::string& prefix)
|
||||
ForcedInstallation = "false";
|
||||
}
|
||||
|
||||
// Requires admin rights
|
||||
option = prefix + "REQUIRES_ADMIN_RIGHTS";
|
||||
if (IsSetToEmpty(option)) {
|
||||
RequiresAdminRights.clear();
|
||||
} else if (IsOn(option)) {
|
||||
RequiresAdminRights = "true";
|
||||
} else if (IsSetToOff(option)) {
|
||||
RequiresAdminRights = "false";
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
@ -481,6 +571,12 @@ void cmCPackIFWPackage::GeneratePackageFile()
|
||||
|
||||
xout.Element("DisplayName", DisplayName);
|
||||
xout.Element("Description", Description);
|
||||
|
||||
// Update text
|
||||
if (!UpdateText.empty()) {
|
||||
xout.Element("UpdateText", UpdateText);
|
||||
}
|
||||
|
||||
xout.Element("Name", Name);
|
||||
xout.Element("Version", Version);
|
||||
|
||||
@ -515,6 +611,23 @@ void cmCPackIFWPackage::GeneratePackageFile()
|
||||
xout.EndElement();
|
||||
}
|
||||
|
||||
// Translations (copy to meta dir)
|
||||
std::vector<std::string> translations = Translations;
|
||||
for (size_t i = 0; i < translations.size(); i++) {
|
||||
std::string name = cmSystemTools::GetFilenameName(translations[i]);
|
||||
std::string path = Directory + "/meta/" + name;
|
||||
cmsys::SystemTools::CopyFileIfDifferent(translations[i].data(),
|
||||
path.data());
|
||||
translations[i] = name;
|
||||
}
|
||||
if (!translations.empty()) {
|
||||
xout.StartElement("Translations");
|
||||
for (size_t i = 0; i < translations.size(); i++) {
|
||||
xout.Element("Translation", translations[i]);
|
||||
}
|
||||
xout.EndElement();
|
||||
}
|
||||
|
||||
// Dependencies
|
||||
std::set<DependenceStruct> compDepSet;
|
||||
for (std::set<DependenceStruct*>::iterator ait = AlienDependencies.begin();
|
||||
@ -538,6 +651,25 @@ void cmCPackIFWPackage::GeneratePackageFile()
|
||||
xout.Element("Dependencies", dependencies.str());
|
||||
}
|
||||
|
||||
// Automatic dependency on
|
||||
std::set<DependenceStruct> compAutoDepSet;
|
||||
for (std::set<DependenceStruct*>::iterator ait = AlienAutoDependOn.begin();
|
||||
ait != AlienAutoDependOn.end(); ++ait) {
|
||||
compAutoDepSet.insert(*(*ait));
|
||||
}
|
||||
// Write automatic dependency on
|
||||
if (!compAutoDepSet.empty()) {
|
||||
std::ostringstream dependencies;
|
||||
std::set<DependenceStruct>::iterator it = compAutoDepSet.begin();
|
||||
dependencies << it->NameWithCompare();
|
||||
++it;
|
||||
while (it != compAutoDepSet.end()) {
|
||||
dependencies << "," << it->NameWithCompare();
|
||||
++it;
|
||||
}
|
||||
xout.Element("AutoDependOn", dependencies.str());
|
||||
}
|
||||
|
||||
// Licenses (copy to meta dir)
|
||||
std::vector<std::string> licenses = Licenses;
|
||||
for (size_t i = 1; i < licenses.size(); i += 2) {
|
||||
@ -561,6 +693,10 @@ void cmCPackIFWPackage::GeneratePackageFile()
|
||||
xout.Element("ForcedInstallation", ForcedInstallation);
|
||||
}
|
||||
|
||||
if (!RequiresAdminRights.empty()) {
|
||||
xout.Element("RequiresAdminRights", RequiresAdminRights);
|
||||
}
|
||||
|
||||
if (!Virtual.empty()) {
|
||||
xout.Element("Virtual", Virtual);
|
||||
} else if (!Default.empty()) {
|
||||
|
@ -92,9 +92,15 @@ public:
|
||||
/// List of pages to load
|
||||
std::vector<std::string> UserInterfaces;
|
||||
|
||||
/// List of translation files to load
|
||||
std::vector<std::string> Translations;
|
||||
|
||||
/// Priority of the component in the tree
|
||||
std::string SortingPriority;
|
||||
|
||||
/// Description added to the component description
|
||||
std::string UpdateText;
|
||||
|
||||
/// Set to true to preselect the component in the installer
|
||||
std::string Default;
|
||||
|
||||
@ -107,6 +113,9 @@ public:
|
||||
/// Determines that the package must always be installed
|
||||
std::string ForcedInstallation;
|
||||
|
||||
/// Package needs to be installed with elevated permissions
|
||||
std::string RequiresAdminRights;
|
||||
|
||||
public:
|
||||
// Internal implementation
|
||||
|
||||
@ -139,6 +148,8 @@ public:
|
||||
std::set<cmCPackIFWPackage*> Dependencies;
|
||||
// Collection of unresolved dependencies
|
||||
std::set<DependenceStruct*> AlienDependencies;
|
||||
// Collection of unresolved automatic dependency on
|
||||
std::set<DependenceStruct*> AlienAutoDependOn;
|
||||
// Patch to package directory
|
||||
std::string Directory;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user