[Cmake-commits] CMake branch, master, updated. v3.8.1-1197-ge69e444
Kitware Robot
kwrobot at kitware.com
Tue May 16 10:05:03 EDT 2017
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".
The branch, master has been updated
via e69e4448fb7e85c1148f145575c4748860d48520 (commit)
via 8475734cb3050ac05ef040952d67d0c5bf59a4c5 (commit)
via ef8ac5ad5af699d87d876a546be43b7f6b744fac (commit)
via c608000a2a57faaac6e1789f8502e734db5ddb0e (commit)
via b8e707a6a1c5c486644132df01b7995740abfbd2 (commit)
via eeb47fbeb203117111bee8f6690a5f272209d104 (commit)
via 72ac7ad98da17f5f13dba9ab70ccddc18bd12ff5 (commit)
from 0789a8be08005d076568695ff3f85fb47f94620a (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e69e4448fb7e85c1148f145575c4748860d48520
commit e69e4448fb7e85c1148f145575c4748860d48520
Merge: 8475734 c608000
Author: Brad King <brad.king at kitware.com>
AuthorDate: Tue May 16 13:57:44 2017 +0000
Commit: Kitware Robot <kwrobot at kitware.com>
CommitDate: Tue May 16 09:57:47 2017 -0400
Merge topic 'xcode-try_compile-scheme'
c608000a Xcode: Work around xcodebuild spurious hangs in try_compile
b8e707a6 Xcode: Refactor internal decision for scheme generation
Acked-by: Kitware Robot <kwrobot at kitware.com>
Merge-request: !850
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8475734cb3050ac05ef040952d67d0c5bf59a4c5
commit 8475734cb3050ac05ef040952d67d0c5bf59a4c5
Merge: ef8ac5a eeb47fb
Author: Brad King <brad.king at kitware.com>
AuthorDate: Tue May 16 13:55:48 2017 +0000
Commit: Kitware Robot <kwrobot at kitware.com>
CommitDate: Tue May 16 09:55:51 2017 -0400
Merge topic 'early-config-name'
eeb47fbe cmLocalCommonGenerator: Save CMAKE_BUILD_TYPE on construction
Acked-by: Kitware Robot <kwrobot at kitware.com>
Merge-request: !848
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ef8ac5ad5af699d87d876a546be43b7f6b744fac
commit ef8ac5ad5af699d87d876a546be43b7f6b744fac
Merge: 0789a8b 72ac7ad
Author: Brad King <brad.king at kitware.com>
AuthorDate: Tue May 16 13:55:24 2017 +0000
Commit: Kitware Robot <kwrobot at kitware.com>
CommitDate: Tue May 16 09:55:29 2017 -0400
Merge topic 'cpackifw-i18n'
72ac7ad9 CPackIFW: Internationalization Support
Acked-by: Kitware Robot <kwrobot at kitware.com>
Merge-request: !748
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c608000a2a57faaac6e1789f8502e734db5ddb0e
commit c608000a2a57faaac6e1789f8502e734db5ddb0e
Author: Brad King <brad.king at kitware.com>
AuthorDate: Mon May 15 13:05:46 2017 -0400
Commit: Brad King <brad.king at kitware.com>
CommitDate: Mon May 15 13:05:46 2017 -0400
Xcode: Work around xcodebuild spurious hangs in try_compile
`xcodebuild` occasionally hangs on some macOS machines (and can be
reproduced independent of CMake). It only happens a few times in 1000
runs, but configuration of a large project calls `try_compile` many
times and therefore frequently hangs due to this problem. I've been
unable to reproduce the hang when using a scheme to build, so always
generate a scheme in `try_compile` projects to work around the problem.
Issue: #16752
diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx
index 4e95fe7..84740ca 100644
--- a/Source/cmGlobalXCodeGenerator.cxx
+++ b/Source/cmGlobalXCodeGenerator.cxx
@@ -3280,7 +3280,8 @@ void cmGlobalXCodeGenerator::OutputXCodeProject(
// Since the lowest available Xcode version for testing was 7.0,
// I'm setting this as a limit then
if (this->XcodeVersion >= 70) {
- if (root->GetMakefile()->IsOn("CMAKE_XCODE_GENERATE_SCHEME")) {
+ if (root->GetMakefile()->GetCMakeInstance()->GetIsInTryCompile() ||
+ root->GetMakefile()->IsOn("CMAKE_XCODE_GENERATE_SCHEME")) {
this->OutputXCodeSharedSchemes(xcodeDir);
this->OutputXCodeWorkspaceSettings(xcodeDir);
}
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=b8e707a6a1c5c486644132df01b7995740abfbd2
commit b8e707a6a1c5c486644132df01b7995740abfbd2
Author: Brad King <brad.king at kitware.com>
AuthorDate: Mon May 15 13:02:09 2017 -0400
Commit: Brad King <brad.king at kitware.com>
CommitDate: Mon May 15 13:02:09 2017 -0400
Xcode: Refactor internal decision for scheme generation
Move the Xcode version check out to wrap everything.
diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx
index e2cb755..4e95fe7 100644
--- a/Source/cmGlobalXCodeGenerator.cxx
+++ b/Source/cmGlobalXCodeGenerator.cxx
@@ -3279,10 +3279,11 @@ void cmGlobalXCodeGenerator::OutputXCodeProject(
// Since the lowest available Xcode version for testing was 7.0,
// I'm setting this as a limit then
- if (root->GetMakefile()->IsOn("CMAKE_XCODE_GENERATE_SCHEME") &&
- this->XcodeVersion >= 70) {
- this->OutputXCodeSharedSchemes(xcodeDir);
- this->OutputXCodeWorkspaceSettings(xcodeDir);
+ if (this->XcodeVersion >= 70) {
+ if (root->GetMakefile()->IsOn("CMAKE_XCODE_GENERATE_SCHEME")) {
+ this->OutputXCodeSharedSchemes(xcodeDir);
+ this->OutputXCodeWorkspaceSettings(xcodeDir);
+ }
}
this->ClearXCodeObjects();
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=eeb47fbeb203117111bee8f6690a5f272209d104
commit eeb47fbeb203117111bee8f6690a5f272209d104
Author: Brad King <brad.king at kitware.com>
AuthorDate: Mon May 15 11:51:57 2017 -0400
Commit: Brad King <brad.king at kitware.com>
CommitDate: Mon May 15 11:51:57 2017 -0400
cmLocalCommonGenerator: Save CMAKE_BUILD_TYPE on construction
Copy the value to our `ConfigName` member on construction to ensure it
is available even to code paths that run before `Generate`. We once
needed to delay this lookup until `Generate` because the local
generators were at one time created before `Configure`. Now they are
created at generate time which is late enough to expect
`CMAKE_BUILD_TYPE` to be available.
Without this, `cmGlobalUnixMakefileGenerator3::WriteConvenienceRules`
causes use of `ConfigName` before it is populated which breaks use of
source files that depend on the `$<CONFIG>` generator expression.
Fixes: #16889
diff --git a/Source/cmLocalCommonGenerator.cxx b/Source/cmLocalCommonGenerator.cxx
index d5f9d27..6524db4 100644
--- a/Source/cmLocalCommonGenerator.cxx
+++ b/Source/cmLocalCommonGenerator.cxx
@@ -16,14 +16,6 @@ cmLocalCommonGenerator::cmLocalCommonGenerator(cmGlobalGenerator* gg,
: cmLocalGenerator(gg, mf)
, WorkingDirectory(wd)
{
-}
-
-cmLocalCommonGenerator::~cmLocalCommonGenerator()
-{
-}
-
-void cmLocalCommonGenerator::SetConfigName()
-{
// Store the configuration name that will be generated.
if (const char* config = this->Makefile->GetDefinition("CMAKE_BUILD_TYPE")) {
// Use the build type given by the user.
@@ -34,6 +26,10 @@ void cmLocalCommonGenerator::SetConfigName()
}
}
+cmLocalCommonGenerator::~cmLocalCommonGenerator()
+{
+}
+
std::string cmLocalCommonGenerator::GetTargetFortranFlags(
cmGeneratorTarget const* target, std::string const& config)
{
diff --git a/Source/cmLocalCommonGenerator.h b/Source/cmLocalCommonGenerator.h
index 3de29d7..a5afcd8 100644
--- a/Source/cmLocalCommonGenerator.h
+++ b/Source/cmLocalCommonGenerator.h
@@ -33,7 +33,6 @@ public:
protected:
std::string WorkingDirectory;
- void SetConfigName();
std::string ConfigName;
friend class cmCommonTargetGenerator;
diff --git a/Source/cmLocalNinjaGenerator.cxx b/Source/cmLocalNinjaGenerator.cxx
index fd2b803..a8350b3 100644
--- a/Source/cmLocalNinjaGenerator.cxx
+++ b/Source/cmLocalNinjaGenerator.cxx
@@ -58,8 +58,6 @@ void cmLocalNinjaGenerator::Generate()
this->HomeRelativeOutputPath = "";
}
- this->SetConfigName();
-
this->WriteProcessedMakefile(this->GetBuildFileStream());
#ifdef NINJA_GEN_VERBOSE_FILES
this->WriteProcessedMakefile(this->GetRulesFileStream());
diff --git a/Source/cmLocalUnixMakefileGenerator3.cxx b/Source/cmLocalUnixMakefileGenerator3.cxx
index 5f52786..959178e 100644
--- a/Source/cmLocalUnixMakefileGenerator3.cxx
+++ b/Source/cmLocalUnixMakefileGenerator3.cxx
@@ -105,8 +105,6 @@ cmLocalUnixMakefileGenerator3::~cmLocalUnixMakefileGenerator3()
void cmLocalUnixMakefileGenerator3::Generate()
{
- this->SetConfigName();
-
// Record whether some options are enabled to avoid checking many
// times later.
if (!this->GetGlobalGenerator()->GetCMakeInstance()->GetIsInTryCompile()) {
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=72ac7ad98da17f5f13dba9ab70ccddc18bd12ff5
commit 72ac7ad98da17f5f13dba9ab70ccddc18bd12ff5
Author: Konstantin Podsvirov <konstantin at podsvirov.pro>
AuthorDate: Sat Apr 22 03:20:43 2017 +0300
Commit: Konstantin Podsvirov <konstantin at podsvirov.pro>
CommitDate: Sat May 13 02:34:15 2017 +0300
CPackIFW: Internationalization Support
Changes:
- DISPLAY_NAME and DESCRIPTION in CPackIFW module now is MULTI_ARGS;
- Added internationalization support for DisplayName and Description
properties in cmCPackIFWPackage class;
- Added documentation to CPackIFW module;
- Added release note.
diff --git a/Help/release/dev/cpackifw-i18n.rst b/Help/release/dev/cpackifw-i18n.rst
new file mode 100644
index 0000000..59327fe
--- /dev/null
+++ b/Help/release/dev/cpackifw-i18n.rst
@@ -0,0 +1,7 @@
+cpackifw-i18n
+-------------
+
+* The :module:`CPackIFW` module :command:`cpack_ifw_configure_component` and
+ :command:`cpack_ifw_configure_component_group` commands gained a
+ internationalization support for ``DISPLAY_NAME`` and ``DESCRIPTION`` options
+ to more specific configuration.
diff --git a/Modules/CPackIFW.cmake b/Modules/CPackIFW.cmake
index b4a6dc6..c1cb52f 100644
--- a/Modules/CPackIFW.cmake
+++ b/Modules/CPackIFW.cmake
@@ -55,6 +55,33 @@
# The :variable:`CPACK_IFW_ROOT` variable has a higher priority and overrides
# the value of the :variable:`QTIFWDIR` variable.
#
+# Internationalization
+# ^^^^^^^^^^^^^^^^^^^^
+#
+# Some variables and command arguments support internationalization via
+# CMake script. This is an optional feature.
+#
+# Installers created by QtIFW_ tools have built-in support for
+# internationalization and many phrases are localized to many languages,
+# but this does not apply to the description of the your components and groups
+# that will be distributed.
+#
+# Localization of the description of your components and groups is useful for
+# users of your installers.
+#
+# A localized variable or argument can contain a single default value, and a
+# set of pairs the name of the locale and the localized value.
+#
+# For example:
+#
+# .. code-block:: cmake
+#
+# set(LOCALIZABLE_VARIABLE "Default value"
+# en "English value"
+# en_US "American value"
+# en_GB "Great Britain value"
+# )
+#
# Variables
# ^^^^^^^^^
#
@@ -265,8 +292,8 @@
# cpack_ifw_configure_component(<compname> [COMMON] [ESSENTIAL] [VIRTUAL]
# [FORCED_INSTALLATION] [REQUIRES_ADMIN_RIGHTS]
# [NAME <name>]
-# [DISPLAY_NAME <display_name>]
-# [DESCRIPTION <description>]
+# [DISPLAY_NAME <display_name>] # Note: Internationalization supported
+# [DESCRIPTION <description>] # Note: Internationalization supported
# [UPDATE_TEXT <update_text>]
# [VERSION <version>]
# [RELEASE_DATE <release_date>]
@@ -368,8 +395,8 @@
# cpack_ifw_configure_component_group(<groupname> [VIRTUAL]
# [FORCED_INSTALLATION] [REQUIRES_ADMIN_RIGHTS]
# [NAME <name>]
-# [DISPLAY_NAME <display_name>]
-# [DESCRIPTION <description>]
+# [DISPLAY_NAME <display_name>] # Note: Internationalization supported
+# [DESCRIPTION <description>] # Note: Internationalization supported
# [UPDATE_TEXT <update_text>]
# [VERSION <version>]
# [RELEASE_DATE <release_date>]
@@ -546,8 +573,9 @@
#
# cpack_add_component(myapp
# DISPLAY_NAME "MyApp"
-# DESCRIPTION "My Application")
+# DESCRIPTION "My Application") # Default description
# cpack_ifw_configure_component(myapp
+# DESCRIPTION ru_RU "Мое Приложение" # Localized description
# VERSION "1.2.3" # Version of component
# SCRIPT "operations.qs")
# cpack_add_component(mybigplugin
@@ -835,8 +863,8 @@ macro(cpack_ifw_configure_component compname)
string(TOUPPER ${compname} _CPACK_IFWCOMP_UNAME)
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)
+ set(_IFW_ARGS NAME VERSION RELEASE_DATE SCRIPT PRIORITY SORTING_PRIORITY UPDATE_TEXT DEFAULT)
+ set(_IFW_MULTI_ARGS DISPLAY_NAME DESCRIPTION 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)
@@ -876,8 +904,8 @@ macro(cpack_ifw_configure_component_group grpname)
string(TOUPPER ${grpname} _CPACK_IFWGRP_UNAME)
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)
+ set(_IFW_ARGS NAME VERSION RELEASE_DATE SCRIPT PRIORITY SORTING_PRIORITY UPDATE_TEXT DEFAULT)
+ set(_IFW_MULTI_ARGS DISPLAY_NAME DESCRIPTION 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)
diff --git a/Source/CPack/IFW/cmCPackIFWCommon.cxx b/Source/CPack/IFW/cmCPackIFWCommon.cxx
index 436f4d3..e8f05bd 100644
--- a/Source/CPack/IFW/cmCPackIFWCommon.cxx
+++ b/Source/CPack/IFW/cmCPackIFWCommon.cxx
@@ -11,6 +11,8 @@
#include "cmXMLWriter.h"
#include <sstream>
+#include <utility>
+#include <vector>
cmCPackIFWCommon::cmCPackIFWCommon()
: Generator(CM_NULLPTR)
@@ -72,6 +74,50 @@ bool cmCPackIFWCommon::IsVersionEqual(const char* version)
version);
}
+void cmCPackIFWCommon::ExpandListArgument(
+ const std::string& arg, std::map<std::string, std::string>& argsOut)
+{
+ std::vector<std::string> args;
+ cmSystemTools::ExpandListArgument(arg, args, false);
+ if (args.empty()) {
+ return;
+ }
+
+ std::size_t i = 0;
+ std::size_t c = args.size();
+ if (c % 2) {
+ argsOut[""] = args[i];
+ ++i;
+ }
+
+ --c;
+ for (; i < c; i += 2) {
+ argsOut[args[i]] = args[i + 1];
+ }
+}
+
+void cmCPackIFWCommon::ExpandListArgument(
+ const std::string& arg, std::multimap<std::string, std::string>& argsOut)
+{
+ std::vector<std::string> args;
+ cmSystemTools::ExpandListArgument(arg, args, false);
+ if (args.empty()) {
+ return;
+ }
+
+ std::size_t i = 0;
+ std::size_t c = args.size();
+ if (c % 2) {
+ argsOut.insert(std::pair<std::string, std::string>("", args[i]));
+ ++i;
+ }
+
+ --c;
+ for (; i < c; i += 2) {
+ argsOut.insert(std::pair<std::string, std::string>(args[i], args[i + 1]));
+ }
+}
+
void cmCPackIFWCommon::WriteGeneratedByToStrim(cmXMLWriter& xout)
{
if (!this->Generator) {
diff --git a/Source/CPack/IFW/cmCPackIFWCommon.h b/Source/CPack/IFW/cmCPackIFWCommon.h
index 66b6e89..354d849 100644
--- a/Source/CPack/IFW/cmCPackIFWCommon.h
+++ b/Source/CPack/IFW/cmCPackIFWCommon.h
@@ -5,6 +5,7 @@
#include "cmConfigure.h" // IWYU pragma: keep
+#include <map>
#include <string>
class cmCPackIFWGenerator;
@@ -46,6 +47,21 @@ public:
*/
bool IsVersionEqual(const char* version);
+ /** Expand the list argument containing the map of the key-value pairs.
+ * If the number of elements is odd, then the first value is used as the
+ * default value with an empty key.
+ * Any values with the same keys will be permanently overwritten.
+ */
+ static void ExpandListArgument(const std::string& arg,
+ std::map<std::string, std::string>& argsOut);
+
+ /** Expand the list argument containing the multimap of the key-value pairs.
+ * If the number of elements is odd, then the first value is used as the
+ * default value with an empty key.
+ */
+ static void ExpandListArgument(
+ const std::string& arg, std::multimap<std::string, std::string>& argsOut);
+
cmCPackIFWGenerator* Generator;
protected:
diff --git a/Source/CPack/IFW/cmCPackIFWPackage.cxx b/Source/CPack/IFW/cmCPackIFWPackage.cxx
index e6ef421..c5311c3 100644
--- a/Source/CPack/IFW/cmCPackIFWPackage.cxx
+++ b/Source/CPack/IFW/cmCPackIFWPackage.cxx
@@ -15,6 +15,7 @@
#include <map>
#include <sstream>
#include <stddef.h>
+#include <utility>
//---------------------------------------------------------- CompareStruct ---
cmCPackIFWPackage::CompareStruct::CompareStruct()
@@ -108,8 +109,8 @@ std::string cmCPackIFWPackage::GetComponentName(cmCPackComponent* component)
void cmCPackIFWPackage::DefaultConfiguration()
{
- this->DisplayName = "";
- this->Description = "";
+ this->DisplayName.clear();
+ this->Description.clear();
this->Version = "";
this->ReleaseDate = "";
this->Script = "";
@@ -136,17 +137,17 @@ int cmCPackIFWPackage::ConfigureFromOptions()
// Display name
if (const char* option = this->GetOption("CPACK_PACKAGE_NAME")) {
- this->DisplayName = option;
+ this->DisplayName[""] = option;
} else {
- this->DisplayName = "Your package";
+ this->DisplayName[""] = "Your package";
}
// Description
if (const char* option =
this->GetOption("CPACK_PACKAGE_DESCRIPTION_SUMMARY")) {
- this->Description = option;
+ this->Description[""] = option;
} else {
- this->Description = "Your package description";
+ this->Description[""] = "Your package description";
}
// Version
@@ -174,10 +175,10 @@ int cmCPackIFWPackage::ConfigureFromComponent(cmCPackComponent* component)
cmsys::SystemTools::UpperCase(component->Name) + "_";
// Display name
- this->DisplayName = component->DisplayName;
+ this->DisplayName[""] = component->DisplayName;
// Description
- this->Description = component->Description;
+ this->Description[""] = component->Description;
// Version
if (const char* optVERSION = this->GetOption(prefix + "VERSION")) {
@@ -262,8 +263,8 @@ int cmCPackIFWPackage::ConfigureFromGroup(cmCPackComponentGroup* group)
std::string prefix = "CPACK_IFW_COMPONENT_GROUP_" +
cmsys::SystemTools::UpperCase(group->Name) + "_";
- this->DisplayName = group->DisplayName;
- this->Description = group->Description;
+ this->DisplayName[""] = group->DisplayName;
+ this->Description[""] = group->Description;
// Version
if (const char* optVERSION = this->GetOption(prefix + "VERSION")) {
@@ -358,7 +359,7 @@ int cmCPackIFWPackage::ConfigureFromPrefix(const std::string& prefix)
if (this->IsSetToEmpty(option)) {
this->DisplayName.clear();
} else if (const char* value = this->GetOption(option)) {
- this->DisplayName = value;
+ this->ExpandListArgument(value, this->DisplayName);
}
// Description
@@ -366,7 +367,7 @@ int cmCPackIFWPackage::ConfigureFromPrefix(const std::string& prefix)
if (this->IsSetToEmpty(option)) {
this->Description.clear();
} else if (const char* value = this->GetOption(option)) {
- this->Description = value;
+ this->ExpandListArgument(value, this->Description);
}
// Release date
@@ -519,8 +520,29 @@ void cmCPackIFWPackage::GeneratePackageFile()
xout.StartElement("Package");
- xout.Element("DisplayName", this->DisplayName);
- xout.Element("Description", this->Description);
+ // DisplayName (with translations)
+ for (std::map<std::string, std::string>::iterator it =
+ this->DisplayName.begin();
+ it != this->DisplayName.end(); ++it) {
+ xout.StartElement("DisplayName");
+ if (!it->first.empty()) {
+ xout.Attribute("xml:lang", it->first);
+ }
+ xout.Content(it->second);
+ xout.EndElement();
+ }
+
+ // Description (with translations)
+ for (std::map<std::string, std::string>::iterator it =
+ this->Description.begin();
+ it != this->Description.end(); ++it) {
+ xout.StartElement("Description");
+ if (!it->first.empty()) {
+ xout.Attribute("xml:lang", it->first);
+ }
+ xout.Content(it->second);
+ xout.EndElement();
+ }
// Update text
if (!this->UpdateText.empty()) {
diff --git a/Source/CPack/IFW/cmCPackIFWPackage.h b/Source/CPack/IFW/cmCPackIFWPackage.h
index f9e577a..cec59b0 100644
--- a/Source/CPack/IFW/cmCPackIFWPackage.h
+++ b/Source/CPack/IFW/cmCPackIFWPackage.h
@@ -7,6 +7,7 @@
#include "cmCPackIFWCommon.h"
+#include <map>
#include <set>
#include <string>
#include <vector>
@@ -69,10 +70,10 @@ public:
// Configuration
/// Human-readable name of the component
- std::string DisplayName;
+ std::map<std::string, std::string> DisplayName;
/// Human-readable description of the component
- std::string Description;
+ std::map<std::string, std::string> Description;
/// Version number of the component
std::string Version;
-----------------------------------------------------------------------
Summary of changes:
Help/release/dev/cpackifw-i18n.rst | 7 +++++
Modules/CPackIFW.cmake | 46 +++++++++++++++++++++------
Source/CPack/IFW/cmCPackIFWCommon.cxx | 46 +++++++++++++++++++++++++++
Source/CPack/IFW/cmCPackIFWCommon.h | 16 ++++++++++
Source/CPack/IFW/cmCPackIFWPackage.cxx | 50 +++++++++++++++++++++---------
Source/CPack/IFW/cmCPackIFWPackage.h | 5 +--
Source/cmGlobalXCodeGenerator.cxx | 10 +++---
Source/cmLocalCommonGenerator.cxx | 12 +++----
Source/cmLocalCommonGenerator.h | 1 -
Source/cmLocalNinjaGenerator.cxx | 2 --
Source/cmLocalUnixMakefileGenerator3.cxx | 2 --
11 files changed, 155 insertions(+), 42 deletions(-)
create mode 100644 Help/release/dev/cpackifw-i18n.rst
hooks/post-receive
--
CMake
More information about the Cmake-commits
mailing list