[Cmake-commits] CMake branch, next, updated. v3.0.0-rc1-757-gdb87d4c

Stephen Kelly steveire at gmail.com
Mon Mar 10 08:16:32 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  db87d4c6430826329878b615ded19ac257eea1b7 (commit)
       via  112cba927abfd54e72d12831dc668148c1465446 (commit)
      from  a196adb2366e4569fb7a53aa2a3aa226efdf290d (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=db87d4c6430826329878b615ded19ac257eea1b7
commit db87d4c6430826329878b615ded19ac257eea1b7
Merge: a196adb 112cba9
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Mon Mar 10 08:16:31 2014 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Mon Mar 10 08:16:31 2014 -0400

    Merge topic 'fix-AUTOGEN-custom-command-depends' into next
    
    112cba92 QtAutogen: Fix AUTOGEN depends on custom command output with VS.


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=112cba927abfd54e72d12831dc668148c1465446
commit 112cba927abfd54e72d12831dc668148c1465446
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Wed Mar 5 13:43:50 2014 +0100
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Mon Mar 10 13:01:29 2014 +0100

    QtAutogen: Fix AUTOGEN depends on custom command output with VS.
    
    Visual Studio is handled as a special case for autogen depends. However,
    the special handling works only for target dependencies, not file
    dependencies output by a custom command.
    
    Use a PRE_BUILD step only if all depends are targets.

diff --git a/Source/cmQtAutoGenerators.cxx b/Source/cmQtAutoGenerators.cxx
index dfb310e..2c5dd45 100644
--- a/Source/cmQtAutoGenerators.cxx
+++ b/Source/cmQtAutoGenerators.cxx
@@ -260,6 +260,18 @@ bool cmQtAutoGenerators::InitializeAutogenTarget(cmTarget* target)
     // This also works around a VS 11 bug that may skip updating the target:
     //  https://connect.microsoft.com/VisualStudio/feedback/details/769495
     usePRE_BUILD = vslg->GetVersion() >= cmLocalVisualStudioGenerator::VS7;
+    if(usePRE_BUILD)
+      {
+      for (std::vector<std::string>::iterator it = depends.begin();
+            it != depends.end(); ++it)
+        {
+        if(!makefile->FindTargetToUse(it->c_str()))
+          {
+          usePRE_BUILD = false;
+          break;
+          }
+        }
+      }
     }
   if(usePRE_BUILD)
     {
diff --git a/Tests/QtAutogen/CMakeLists.txt b/Tests/QtAutogen/CMakeLists.txt
index 4da125f..0821b45 100644
--- a/Tests/QtAutogen/CMakeLists.txt
+++ b/Tests/QtAutogen/CMakeLists.txt
@@ -58,11 +58,17 @@ add_custom_target(generate_moc_input
   COMMAND ${CMAKE_COMMAND} -E rename "${CMAKE_CURRENT_BINARY_DIR}/myinterface.h.in" "${CMAKE_CURRENT_BINARY_DIR}/myinterface.h"
 )
 
+add_custom_command(
+  OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/myotherinterface.h"
+  COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_SOURCE_DIR}/myotherinterface.h.in" "${CMAKE_CURRENT_BINARY_DIR}/myotherinterface.h"
+  DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/myotherinterface.h.in"
+)
+
 add_executable(QtAutogen main.cpp calwidget.cpp foo.cpp blub.cpp bar.cpp abc.cpp
                xyz.cpp yaf.cpp gadget.cpp $<TARGET_OBJECTS:privateSlot>
                test.qrc resourcetester.cpp generated.cpp
 )
-set_property(TARGET QtAutogen APPEND PROPERTY AUTOGEN_TARGET_DEPENDS generate_moc_input)
+set_property(TARGET QtAutogen APPEND PROPERTY AUTOGEN_TARGET_DEPENDS generate_moc_input "${CMAKE_CURRENT_BINARY_DIR}/myotherinterface.h")
 
 set_target_properties(QtAutogen codeeditorLib privateSlot PROPERTIES AUTOMOC TRUE)
 
diff --git a/Tests/QtAutogen/generated.h b/Tests/QtAutogen/generated.h
index dd22489..b6c2711 100644
--- a/Tests/QtAutogen/generated.h
+++ b/Tests/QtAutogen/generated.h
@@ -5,11 +5,12 @@
 #include <QObject>
 
 #include "myinterface.h"
+#include "myotherinterface.h"
 
-class Generated : public QObject, MyInterface
+class Generated : public QObject, MyInterface, MyOtherInterface
 {
   Q_OBJECT
-  Q_INTERFACES(MyInterface)
+  Q_INTERFACES(MyInterface MyOtherInterface)
 public:
   explicit Generated(QObject *parent = 0);
 };
diff --git a/Tests/QtAutogen/myotherinterface.h.in b/Tests/QtAutogen/myotherinterface.h.in
new file mode 100644
index 0000000..d21e7af
--- /dev/null
+++ b/Tests/QtAutogen/myotherinterface.h.in
@@ -0,0 +1,14 @@
+
+#ifndef MYOTHERINTERFACE_H
+#define MYOTHERINTERFACE_H
+
+#include <QObject>
+
+class MyOtherInterface
+{
+
+};
+
+Q_DECLARE_INTERFACE(MyOtherInterface, "org.cmake.example.MyOtherInterface")
+
+#endif

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

Summary of changes:
 Source/cmQtAutoGenerators.cxx         |   12 ++++++++++++
 Tests/QtAutogen/CMakeLists.txt        |    8 +++++++-
 Tests/QtAutogen/generated.h           |    5 +++--
 Tests/QtAutogen/myotherinterface.h.in |   14 ++++++++++++++
 4 files changed, 36 insertions(+), 3 deletions(-)
 create mode 100644 Tests/QtAutogen/myotherinterface.h.in


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list