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.k...@kitware.com>
AuthorDate: Tue May 16 13:57:44 2017 +0000
Commit:     Kitware Robot <kwro...@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 <kwro...@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.k...@kitware.com>
AuthorDate: Tue May 16 13:55:48 2017 +0000
Commit:     Kitware Robot <kwro...@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 <kwro...@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.k...@kitware.com>
AuthorDate: Tue May 16 13:55:24 2017 +0000
Commit:     Kitware Robot <kwro...@kitware.com>
CommitDate: Tue May 16 09:55:29 2017 -0400

    Merge topic 'cpackifw-i18n'
    
    72ac7ad9 CPackIFW: Internationalization Support
    
    Acked-by: Kitware Robot <kwro...@kitware.com>
    Merge-request: !748


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c608000a2a57faaac6e1789f8502e734db5ddb0e
commit c608000a2a57faaac6e1789f8502e734db5ddb0e
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Mon May 15 13:05:46 2017 -0400
Commit:     Brad King <brad.k...@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.k...@kitware.com>
AuthorDate: Mon May 15 13:02:09 2017 -0400
Commit:     Brad King <brad.k...@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.k...@kitware.com>
AuthorDate: Mon May 15 11:51:57 2017 -0400
Commit:     Brad King <brad.k...@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 <konstan...@podsvirov.pro>
AuthorDate: Sat Apr 22 03:20:43 2017 +0300
Commit:     Konstantin Podsvirov <konstan...@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
_______________________________________________
Cmake-commits mailing list
Cmake-commits@cmake.org
http://public.kitware.com/mailman/listinfo/cmake-commits

Reply via email to