[Cmake-commits] CMake branch, next, updated. v2.8.12.1-5221-g075e8f7

Stephen Kelly steveire at gmail.com
Mon Nov 18 02:39:48 EST 2013


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  075e8f795bbd04daf587ccbcc986acbba430fb9e (commit)
       via  ae016fa8af7212bc84e33e5ea0b3c720da6e6f38 (commit)
      from  a41a80917f1103671a84fe348f3d3924b53299d1 (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=075e8f795bbd04daf587ccbcc986acbba430fb9e
commit 075e8f795bbd04daf587ccbcc986acbba430fb9e
Merge: a41a809 ae016fa
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Mon Nov 18 02:39:45 2013 -0500
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Mon Nov 18 02:39:45 2013 -0500

    Merge topic 'autogen-depends' into next
    
    ae016fa cmQtAutogen: Allow specifying depends for autogen targets.


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ae016fa8af7212bc84e33e5ea0b3c720da6e6f38
commit ae016fa8af7212bc84e33e5ea0b3c720da6e6f38
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Mon Nov 18 08:09:56 2013 +0100
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Mon Nov 18 08:36:52 2013 +0100

    cmQtAutogen: Allow specifying depends for autogen targets.
    
    Test this by generating files with a custom target, which require
    processing by automoc.
    
    Lift the restriction of automoc on processing generated files. Instead,
    mark the generated _automoc file as skipped for automoc purposes.

diff --git a/Source/cmQtAutoGenerators.cxx b/Source/cmQtAutoGenerators.cxx
index 36cb368..3a5056a 100644
--- a/Source/cmQtAutoGenerators.cxx
+++ b/Source/cmQtAutoGenerators.cxx
@@ -204,6 +204,11 @@ bool cmQtAutoGenerators::InitializeAutogenTarget(cmTarget* target)
                                     "", makefile->GetCurrentOutputDirectory());
 
   std::vector<std::string> depends;
+  if (const char *autogenDepends =
+                                target->GetProperty("AUTOGEN_TARGET_DEPENDS"))
+    {
+    cmSystemTools::ExpandListArgument(autogenDepends, depends);
+    }
   std::vector<std::string> toolNames;
   if (target->GetPropertyAsBool("AUTOMOC"))
     {
@@ -442,9 +447,8 @@ void cmQtAutoGenerators::SetupAutoMocTarget(cmTarget* target,
     std::string absFile = cmsys::SystemTools::GetRealPath(
                                                     sf->GetFullPath().c_str());
     bool skip = cmSystemTools::IsOn(sf->GetPropertyForUser("SKIP_AUTOMOC"));
-    bool generated = cmSystemTools::IsOn(sf->GetPropertyForUser("GENERATED"));
 
-    if (!generated)
+    if (absFile.find("_automoc.cpp") == std::string::npos)
       {
       if (skip)
         {
@@ -1327,6 +1331,9 @@ bool cmQtAutoGenerators::RunAutogen(cmMakefile* makefile)
                std::ios::out | std::ios::trunc);
   outfile << automocSource;
   outfile.close();
+  cmSourceFile* automocCppSource
+          = makefile->GetOrCreateSource(this->OutMocCppFilename.c_str(), true);
+  automocCppSource->SetProperty("SKIP_AUTOMOC", "1");
 
   return true;
 }
diff --git a/Tests/QtAutogen/CMakeLists.txt b/Tests/QtAutogen/CMakeLists.txt
index 7991c4e..54d24a0 100644
--- a/Tests/QtAutogen/CMakeLists.txt
+++ b/Tests/QtAutogen/CMakeLists.txt
@@ -43,10 +43,19 @@ add_library(codeeditorLib STATIC codeeditor.cpp)
 
 add_library(privateSlot OBJECT private_slot.cpp)
 
+add_custom_target(generate_moc_input
+  COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_SOURCE_DIR}/generated.h.in" "${CMAKE_CURRENT_BINARY_DIR}"
+  COMMAND ${CMAKE_COMMAND} -E rename "${CMAKE_CURRENT_BINARY_DIR}/generated.h.in" "${CMAKE_CURRENT_BINARY_DIR}/generated.h"
+  COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_SOURCE_DIR}/generated.cpp.in" "${CMAKE_CURRENT_BINARY_DIR}"
+  COMMAND ${CMAKE_COMMAND} -E rename "${CMAKE_CURRENT_BINARY_DIR}/generated.cpp.in" "${CMAKE_CURRENT_BINARY_DIR}/generated.cpp"
+)
+set_source_files_properties("${CMAKE_CURRENT_BINARY_DIR}/generated.cpp" PROPERTIES GENERATED TRUE)
+
 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
+               test.qrc resourcetester.cpp "${CMAKE_CURRENT_BINARY_DIR}/generated.cpp"
 )
+set_property(TARGET QtAutogen APPEND PROPERTY AUTOGEN_TARGET_DEPENDS generate_moc_input)
 
 set_target_properties(QtAutogen codeeditorLib privateSlot PROPERTIES AUTOMOC TRUE)
 

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

Summary of changes:
 Source/cmQtAutoGenerators.cxx  |   11 +++++++++--
 Tests/QtAutogen/CMakeLists.txt |   11 ++++++++++-
 2 files changed, 19 insertions(+), 3 deletions(-)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list