[Cmake-commits] CMake branch, next, updated. v3.0.2-5370-ge1dd61c

Stephen Kelly steveire at gmail.com
Thu Sep 18 03:41:36 EDT 2014


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, next has been updated
       via  e1dd61c444949a5433a4ac768e1f67ae70225eaa (commit)
       via  e3c97a1914aa0a521b55b53ab1b0d71732c5e466 (commit)
      from  407640ddb3ba3bec8c6a2ad36861f2bb5924ff5b (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 -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e1dd61c444949a5433a4ac768e1f67ae70225eaa
commit e1dd61c444949a5433a4ac768e1f67ae70225eaa
Merge: 407640d e3c97a1
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Thu Sep 18 03:41:36 2014 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Thu Sep 18 03:41:36 2014 -0400

    Merge topic 'autogen-fixes' into next
    
    e3c97a19 QtAutogen: Process all ui files in a source file (#14981).


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e3c97a1914aa0a521b55b53ab1b0d71732c5e466
commit e3c97a1914aa0a521b55b53ab1b0d71732c5e466
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Wed Sep 17 01:23:57 2014 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Thu Sep 18 09:41:16 2014 +0200

    QtAutogen: Process all ui files in a source file (#14981).
    
    Use a vector to store a list of matched ui_ includes, instead of
    overwriting the previous match.

diff --git a/Source/cmQtAutoGenerators.cxx b/Source/cmQtAutoGenerators.cxx
index 4b8f810..b9d3004 100644
--- a/Source/cmQtAutoGenerators.cxx
+++ b/Source/cmQtAutoGenerators.cxx
@@ -1296,8 +1296,8 @@ bool cmQtAutoGenerators::RunAutogen(cmMakefile* makefile)
   const std::vector<std::string>& headerExtensions =
                                                makefile->GetHeaderExtensions();
 
-  std::map<std::string, std::string> includedUis;
-  std::map<std::string, std::string> skippedUis;
+  std::map<std::string, std::vector<std::string> > includedUis;
+  std::map<std::string, std::vector<std::string> > skippedUis;
   std::vector<std::string> uicSkipped;
   cmSystemTools::ExpandListArgument(this->SkipUic, uicSkipped);
 
@@ -1307,7 +1307,7 @@ bool cmQtAutoGenerators::RunAutogen(cmMakefile* makefile)
     {
     const bool skipUic = std::find(uicSkipped.begin(), uicSkipped.end(), *it)
         != uicSkipped.end();
-    std::map<std::string, std::string>& uiFiles
+    std::map<std::string, std::vector<std::string> >& uiFiles
                                           = skipUic ? skippedUis : includedUis;
     const std::string &absFilename = *it;
     if (this->Verbose)
@@ -1368,12 +1368,17 @@ bool cmQtAutoGenerators::RunAutogen(cmMakefile* makefile)
     {
     this->GenerateMoc(it->first, it->second);
     }
-  for(std::map<std::string, std::string>::const_iterator
+  for(std::map<std::string, std::vector<std::string> >::const_iterator
       it = includedUis.begin();
       it != includedUis.end();
       ++it)
     {
-    this->GenerateUi(it->first, it->second);
+    for (std::vector<std::string>::const_iterator nit = it->second.begin();
+        nit != it->second.end();
+        ++nit)
+      {
+      this->GenerateUi(it->first, *nit);
+      }
     }
 
   if(!this->RccExecutable.empty())
@@ -1448,9 +1453,9 @@ bool cmQtAutoGenerators::RunAutogen(cmMakefile* makefile)
 
 
 void cmQtAutoGenerators::ParseCppFile(const std::string& absFilename,
-                              const std::vector<std::string>& headerExtensions,
-                              std::map<std::string, std::string>& includedMocs,
-                              std::map<std::string, std::string> &includedUis)
+                const std::vector<std::string>& headerExtensions,
+                std::map<std::string, std::string>& includedMocs,
+                std::map<std::string, std::vector<std::string> > &includedUis)
 {
   cmsys::RegularExpression mocIncludeRegExp(
               "[\n][ \t]*#[ \t]*include[ \t]+"
@@ -1636,9 +1641,9 @@ void cmQtAutoGenerators::ParseCppFile(const std::string& absFilename,
 
 
 void cmQtAutoGenerators::StrictParseCppFile(const std::string& absFilename,
-                              const std::vector<std::string>& headerExtensions,
-                              std::map<std::string, std::string>& includedMocs,
-                              std::map<std::string, std::string>& includedUis)
+                const std::vector<std::string>& headerExtensions,
+                std::map<std::string, std::string>& includedMocs,
+                std::map<std::string, std::vector<std::string> >& includedUis)
 {
   cmsys::RegularExpression mocIncludeRegExp(
               "[\n][ \t]*#[ \t]*include[ \t]+"
@@ -1756,7 +1761,7 @@ void cmQtAutoGenerators::StrictParseCppFile(const std::string& absFilename,
 
 
 void cmQtAutoGenerators::ParseForUic(const std::string& absFilename,
-                              std::map<std::string, std::string>& includedUis)
+                std::map<std::string, std::vector<std::string> >& includedUis)
 {
   if (this->UicExecutable.empty())
     {
@@ -1774,8 +1779,8 @@ void cmQtAutoGenerators::ParseForUic(const std::string& absFilename,
 
 
 void cmQtAutoGenerators::ParseForUic(const std::string& absFilename,
-                                     const std::string& contentsString,
-                              std::map<std::string, std::string>& includedUis)
+                const std::string& contentsString,
+                std::map<std::string, std::vector<std::string> >& includedUis)
 {
   if (this->UicExecutable.empty())
     {
@@ -1805,7 +1810,7 @@ void cmQtAutoGenerators::ParseForUic(const std::string& absFilename,
       // finding the correct header, so we need to remove the ui_ part
       basename = basename.substr(3);
 
-      includedUis[realName] = basename;
+      includedUis[realName].push_back(basename);
 
       matchOffset += uiIncludeRegExp.end();
       } while(uiIncludeRegExp.find(contentsString.c_str() + matchOffset));
@@ -1851,9 +1856,9 @@ cmQtAutoGenerators::SearchHeadersForCppFile(const std::string& absFilename,
 
 
 void cmQtAutoGenerators::ParseHeaders(const std::set<std::string>& absHeaders,
-                        const std::map<std::string, std::string>& includedMocs,
-                        std::map<std::string, std::string>& notIncludedMocs,
-                        std::map<std::string, std::string>& includedUis)
+                const std::map<std::string, std::string>& includedMocs,
+                std::map<std::string, std::string>& notIncludedMocs,
+                std::map<std::string, std::vector<std::string> >& includedUis)
 {
   for(std::set<std::string>::const_iterator hIt=absHeaders.begin();
       hIt!=absHeaders.end();
diff --git a/Source/cmQtAutoGenerators.h b/Source/cmQtAutoGenerators.h
index 9ddf64f..5e4e082 100644
--- a/Source/cmQtAutoGenerators.h
+++ b/Source/cmQtAutoGenerators.h
@@ -51,28 +51,28 @@ private:
   bool GenerateUi(const std::string& realName, const std::string& uiFileName);
   bool GenerateQrc();
   void ParseCppFile(const std::string& absFilename,
-                    const std::vector<std::string>& headerExtensions,
-                    std::map<std::string, std::string>& includedMocs,
-                          std::map<std::string, std::string>& includedUis);
+              const std::vector<std::string>& headerExtensions,
+              std::map<std::string, std::string>& includedMocs,
+              std::map<std::string, std::vector<std::string> >& includedUis);
   void StrictParseCppFile(const std::string& absFilename,
-                          const std::vector<std::string>& headerExtensions,
-                          std::map<std::string, std::string>& includedMocs,
-                          std::map<std::string, std::string>& includedUis);
+              const std::vector<std::string>& headerExtensions,
+              std::map<std::string, std::string>& includedMocs,
+              std::map<std::string, std::vector<std::string> >& includedUis);
   void SearchHeadersForCppFile(const std::string& absFilename,
                               const std::vector<std::string>& headerExtensions,
                               std::set<std::string>& absHeaders);
 
   void ParseHeaders(const std::set<std::string>& absHeaders,
-                    const std::map<std::string, std::string>& includedMocs,
-                    std::map<std::string, std::string>& notIncludedMocs,
-                          std::map<std::string, std::string>& includedUis);
+              const std::map<std::string, std::string>& includedMocs,
+              std::map<std::string, std::string>& notIncludedMocs,
+              std::map<std::string, std::vector<std::string> >& includedUis);
 
   void ParseForUic(const std::string& fileName,
-                   const std::string& contentsString,
-                   std::map<std::string, std::string>& includedUis);
+              const std::string& contentsString,
+              std::map<std::string, std::vector<std::string> >& includedUis);
 
   void ParseForUic(const std::string& fileName,
-                   std::map<std::string, std::string>& includedUis);
+              std::map<std::string, std::vector<std::string> >& includedUis);
 
   void Init();
 
diff --git a/Tests/QtAutogen/CMakeLists.txt b/Tests/QtAutogen/CMakeLists.txt
index f9aa309..f1a272a 100644
--- a/Tests/QtAutogen/CMakeLists.txt
+++ b/Tests/QtAutogen/CMakeLists.txt
@@ -68,6 +68,7 @@ add_custom_command(
 )
 
 add_executable(QtAutogen main.cpp calwidget.cpp second_widget.cpp foo.cpp blub.cpp bar.cpp abc.cpp
+               multiplewidgets.cpp
                xyz.cpp yaf.cpp gadget.cpp $<TARGET_OBJECTS:privateSlot>
                test.qrc second_resource.qrc resourcetester.cpp generated.cpp
 )
diff --git a/Tests/QtAutogen/multiplewidgets.cpp b/Tests/QtAutogen/multiplewidgets.cpp
new file mode 100644
index 0000000..f143875
--- /dev/null
+++ b/Tests/QtAutogen/multiplewidgets.cpp
@@ -0,0 +1,19 @@
+
+#include "multiplewidgets.h"
+
+#include "ui_widget1.h"
+#include "ui_widget2.h"
+
+Widget1::Widget1(QWidget *parent)
+  : QWidget(parent),
+    ui(new Ui::Widget1)
+{
+  ui->setupUi(this);
+}
+
+Widget2::Widget2(QWidget *parent)
+  : QWidget(parent),
+    ui(new Ui::Widget2)
+{
+  ui->setupUi(this);
+}
diff --git a/Tests/QtAutogen/multiplewidgets.h b/Tests/QtAutogen/multiplewidgets.h
new file mode 100644
index 0000000..6ae6ad1
--- /dev/null
+++ b/Tests/QtAutogen/multiplewidgets.h
@@ -0,0 +1,33 @@
+
+#ifndef MULTIPLEWIDGETS_H
+#define MULTIPLEWIDGETS_H
+
+#include <QWidget>
+
+namespace Ui {
+class Widget1;
+}
+
+class Widget1 : public QWidget
+{
+  Q_OBJECT
+public:
+  Widget1(QWidget *parent = 0);
+private:
+  Ui::Widget1 *ui;
+};
+
+namespace Ui {
+class Widget2;
+}
+
+class Widget2 : public QWidget
+{
+  Q_OBJECT
+public:
+  Widget2(QWidget *parent = 0);
+private:
+  Ui::Widget2 *ui;
+};
+
+#endif
diff --git a/Tests/QtAutogen/widget1.ui b/Tests/QtAutogen/widget1.ui
new file mode 100644
index 0000000..8fce81a
--- /dev/null
+++ b/Tests/QtAutogen/widget1.ui
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>Widget1</class>
+ <widget class="QWidget" name="Widget1">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>400</width>
+    <height>300</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <widget class="QPushButton" name="pushButton">
+   <property name="geometry">
+    <rect>
+     <x>140</x>
+     <y>80</y>
+     <width>80</width>
+     <height>23</height>
+    </rect>
+   </property>
+   <property name="text">
+    <string>PushButton</string>
+   </property>
+  </widget>
+  <widget class="QPushButton" name="pushButton_2">
+   <property name="geometry">
+    <rect>
+     <x>190</x>
+     <y>170</y>
+     <width>80</width>
+     <height>23</height>
+    </rect>
+   </property>
+   <property name="text">
+    <string>PushButton</string>
+   </property>
+  </widget>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/Tests/QtAutogen/widget2.ui b/Tests/QtAutogen/widget2.ui
new file mode 100644
index 0000000..1f411b9
--- /dev/null
+++ b/Tests/QtAutogen/widget2.ui
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>Widget2</class>
+ <widget class="QWidget" name="Widget1">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>400</width>
+    <height>300</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <widget class="QListWidget" name="listWidget">
+   <property name="geometry">
+    <rect>
+     <x>20</x>
+     <y>20</y>
+     <width>256</width>
+     <height>192</height>
+    </rect>
+   </property>
+  </widget>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>

-----------------------------------------------------------------------

Summary of changes:


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list