[Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-499-ge324186

Kitware Robot kwrobot at kitware.com
Thu Mar 16 07:05:06 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, next has been updated
       via  e3241867579c4841b1f40d598a4e6c87dd80b22b (commit)
       via  7c14ff1217bdc368b988bdd6d8ee4280349c175b (commit)
       via  850eb734f558442310521418dc2cd2ee6a161142 (commit)
       via  af1354d6c14097f9ec9dda25460e9228fa592fbc (commit)
       via  379cf11b3073caeb97727b17db48766624290caa (commit)
      from  f1e9873dc41d23956ae3b01526172e16cb64ed38 (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=e3241867579c4841b1f40d598a4e6c87dd80b22b
commit e3241867579c4841b1f40d598a4e6c87dd80b22b
Merge: f1e9873 7c14ff1
Author:     Sebastian Holtermann <sebholt at xwmw.org>
AuthorDate: Thu Mar 16 10:56:17 2017 +0000
Commit:     Kitware Robot <kwrobot at kitware.com>
CommitDate: Thu Mar 16 06:56:22 2017 -0400

    Stage topic 'autogen_source_group'
    
    Topic-id: 23067
    Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/586


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=7c14ff1217bdc368b988bdd6d8ee4280349c175b
commit 7c14ff1217bdc368b988bdd6d8ee4280349c175b
Author:     Sebastian Holtermann <sebholt at xwmw.org>
AuthorDate: Wed Mar 15 12:09:03 2017 +0100
Commit:     Sebastian Holtermann <sebholt at xwmw.org>
CommitDate: Thu Mar 16 11:52:55 2017 +0100

    Autogen: Add AUTOGEN_SOURCE_GROUP release notes

diff --git a/Help/release/dev/Autogen_source_group b/Help/release/dev/Autogen_source_group
new file mode 100644
index 0000000..60faa8c
--- /dev/null
+++ b/Help/release/dev/Autogen_source_group
@@ -0,0 +1,8 @@
+AutoGen source group
+--------------------
+
+* Global properties :prop_gbl:`AUTOGEN_SOURCE_GROUP`,
+  :prop_gbl:`AUTOMOC_SOURCE_GROUP` and
+  :prop_gbl:`AUTORCC_SOURCE_GROUP` were
+  introduced to allow files generated by :prop_tgt:`AUTOMOC` or
+  :prop_tgt:`AUTORCC` to be placed in a :command:`source_group`.

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=850eb734f558442310521418dc2cd2ee6a161142
commit 850eb734f558442310521418dc2cd2ee6a161142
Author:     Sebastian Holtermann <sebholt at xwmw.org>
AuthorDate: Wed Mar 15 12:01:15 2017 +0100
Commit:     Sebastian Holtermann <sebholt at xwmw.org>
CommitDate: Thu Mar 16 11:52:55 2017 +0100

    Autogen: Add AUTOGEN_SOURCE_GROUP documentation

diff --git a/Help/manual/cmake-properties.7.rst b/Help/manual/cmake-properties.7.rst
index e07150a..9967d00 100644
--- a/Help/manual/cmake-properties.7.rst
+++ b/Help/manual/cmake-properties.7.rst
@@ -16,8 +16,11 @@ Properties of Global Scope
    :maxdepth: 1
 
    /prop_gbl/ALLOW_DUPLICATE_CUSTOM_TARGETS
+   /prop_gbl/AUTOGEN_SOURCE_GROUP
    /prop_gbl/AUTOGEN_TARGETS_FOLDER
+   /prop_gbl/AUTOMOC_SOURCE_GROUP
    /prop_gbl/AUTOMOC_TARGETS_FOLDER
+   /prop_gbl/AUTORCC_SOURCE_GROUP
    /prop_gbl/CMAKE_C_KNOWN_FEATURES
    /prop_gbl/CMAKE_CXX_KNOWN_FEATURES
    /prop_gbl/DEBUG_CONFIGURATIONS
diff --git a/Help/prop_gbl/AUTOGEN_SOURCE_GROUP.rst b/Help/prop_gbl/AUTOGEN_SOURCE_GROUP.rst
new file mode 100644
index 0000000..d294eb1
--- /dev/null
+++ b/Help/prop_gbl/AUTOGEN_SOURCE_GROUP.rst
@@ -0,0 +1,15 @@
+AUTOGEN_SOURCE_GROUP
+--------------------
+
+Name of the  :command:`source_group` for :prop_tgt:`AUTOMOC` and
+:prop_tgt:`AUTORCC` generated files.
+
+Files generated by :prop_tgt:`AUTOMOC` and :prop_tgt:`AUTORCC` are not always
+known at configure time and therefore can't be passed to
+:command:`source_group`.
+:prop_gbl:`AUTOGEN_SOURCE_GROUP` an be used instead to generate or select
+a source group for :prop_tgt:`AUTOMOC` and :prop_tgt:`AUTORCC` generated files.
+
+For :prop_tgt:`AUTOMOC` and :prop_tgt:`AUTORCC` specific overrides see
+:prop_gbl:`AUTOMOC_SOURCE_GROUP` and :prop_gbl:`AUTORCC_SOURCE_GROUP`
+respectively.
diff --git a/Help/prop_gbl/AUTOGEN_TARGETS_FOLDER.rst b/Help/prop_gbl/AUTOGEN_TARGETS_FOLDER.rst
index fae5626..0b747b2 100644
--- a/Help/prop_gbl/AUTOGEN_TARGETS_FOLDER.rst
+++ b/Help/prop_gbl/AUTOGEN_TARGETS_FOLDER.rst
@@ -1,8 +1,8 @@
 AUTOGEN_TARGETS_FOLDER
 ----------------------
 
-Name of :prop_tgt:`FOLDER` for ``*_autogen`` targets that are added automatically by
-CMake for targets for which :prop_tgt:`AUTOMOC` is enabled.
+Name of :prop_tgt:`FOLDER` for ``*_autogen`` targets that are added
+automatically by CMake for targets for which :prop_tgt:`AUTOMOC` is enabled.
 
 If not set, CMake uses the :prop_tgt:`FOLDER` property of the parent target as a
 default value for this property.  See also the documentation for the
diff --git a/Help/prop_gbl/AUTOMOC_SOURCE_GROUP.rst b/Help/prop_gbl/AUTOMOC_SOURCE_GROUP.rst
new file mode 100644
index 0000000..2455dc7
--- /dev/null
+++ b/Help/prop_gbl/AUTOMOC_SOURCE_GROUP.rst
@@ -0,0 +1,7 @@
+AUTOMOC_SOURCE_GROUP
+--------------------
+
+Name of the  :command:`source_group` for :prop_tgt:`AUTOMOC` generated files.
+
+When set this is used instead of :prop_gbl:`AUTOGEN_SOURCE_GROUP` for
+files generated by :prop_tgt:`AUTOMOC`.
diff --git a/Help/prop_gbl/AUTORCC_SOURCE_GROUP.rst b/Help/prop_gbl/AUTORCC_SOURCE_GROUP.rst
new file mode 100644
index 0000000..65ea95b
--- /dev/null
+++ b/Help/prop_gbl/AUTORCC_SOURCE_GROUP.rst
@@ -0,0 +1,7 @@
+AUTORCC_SOURCE_GROUP
+--------------------
+
+Name of the  :command:`source_group` for :prop_tgt:`AUTORCC` generated files.
+
+When set this is used instead of :prop_gbl:`AUTOGEN_SOURCE_GROUP` for
+files generated by :prop_tgt:`AUTORCC`.
diff --git a/Help/prop_tgt/AUTOMOC.rst b/Help/prop_tgt/AUTOMOC.rst
index b729c0b..7e10fde 100644
--- a/Help/prop_tgt/AUTOMOC.rst
+++ b/Help/prop_tgt/AUTOMOC.rst
@@ -57,6 +57,9 @@ See the documentation for this variable for more details.
 The global property :prop_gbl:`AUTOGEN_TARGETS_FOLDER` can be used to group the
 automoc targets together in an IDE, e.g.  in MSVS.
 
+The global property :prop_gbl:`AUTOGEN_SOURCE_GROUP` can be used to group
+files generated by :prop_tgt:`AUTOMOC` together in an IDE, e.g.  in MSVS.
+
 Additional ``moc`` dependency file names can be extracted from source code
 by using :prop_tgt:`AUTOMOC_DEPEND_FILTERS`.
 
diff --git a/Help/prop_tgt/AUTORCC.rst b/Help/prop_tgt/AUTORCC.rst
index 1ad0895..c0f6a26 100644
--- a/Help/prop_tgt/AUTORCC.rst
+++ b/Help/prop_tgt/AUTORCC.rst
@@ -19,6 +19,9 @@ Additional command line options for rcc can be set via the
 The global property :prop_gbl:`AUTOGEN_TARGETS_FOLDER` can be used to group
 the autorcc targets together in an IDE, e.g. in MSVS.
 
+The global property :prop_gbl:`AUTOGEN_SOURCE_GROUP` can be used to group
+files generated by :prop_tgt:`AUTORCC` together in an IDE, e.g.  in MSVS.
+
 When there are multiple ``.qrc`` files with the same name, CMake will
 generate unspecified unique names for ``rcc``.  Therefore if
 ``Q_INIT_RESOURCE()`` or ``Q_CLEANUP_RESOURCE()`` need to be used the

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=af1354d6c14097f9ec9dda25460e9228fa592fbc
commit af1354d6c14097f9ec9dda25460e9228fa592fbc
Author:     Sebastian Holtermann <sebholt at xwmw.org>
AuthorDate: Wed Mar 15 10:50:23 2017 +0100
Commit:     Sebastian Holtermann <sebholt at xwmw.org>
CommitDate: Thu Mar 16 11:52:20 2017 +0100

    Autogen: Add AUTOGEN_SOURCE_GROUP support
    
    Closes: #16501

diff --git a/Source/cmQtAutoGeneratorInitializer.cxx b/Source/cmQtAutoGeneratorInitializer.cxx
index 94cc981..6ebc234 100644
--- a/Source/cmQtAutoGeneratorInitializer.cxx
+++ b/Source/cmQtAutoGeneratorInitializer.cxx
@@ -134,6 +134,61 @@ static void AddDefinitionEscaped(cmMakefile* makefile, const char* key,
     key, cmOutputConverter::EscapeForCMake(cmJoin(values, ";")).c_str());
 }
 
+static bool AddToSourceGroup(cmMakefile* makefile, const std::string& fileName,
+                             cmQtAutoGeneratorCommon::GeneratorType genType)
+{
+  cmSourceGroup* sourceGroup = CM_NULLPTR;
+  // Acquire source group
+  {
+    const char* groupName = CM_NULLPTR;
+    // Use generator specific group name
+    switch (genType) {
+      case cmQtAutoGeneratorCommon::MOC:
+        groupName =
+          makefile->GetState()->GetGlobalProperty("AUTOMOC_SOURCE_GROUP");
+        break;
+      case cmQtAutoGeneratorCommon::RCC:
+        groupName =
+          makefile->GetState()->GetGlobalProperty("AUTORCC_SOURCE_GROUP");
+        break;
+      default:
+        break;
+    }
+    // Use default group name on demand
+    if ((groupName == CM_NULLPTR) || (*groupName == 0)) {
+      groupName =
+        makefile->GetState()->GetGlobalProperty("AUTOGEN_SOURCE_GROUP");
+    }
+    // Generate a source group on demand
+    if ((groupName != CM_NULLPTR) && (*groupName != 0)) {
+      {
+        const char* delimiter =
+          makefile->GetDefinition("SOURCE_GROUP_DELIMITER");
+        if (delimiter == CM_NULLPTR) {
+          delimiter = "\\";
+        }
+        std::vector<std::string> folders =
+          cmSystemTools::tokenize(groupName, delimiter);
+        sourceGroup = makefile->GetSourceGroup(folders);
+        if (sourceGroup == CM_NULLPTR) {
+          makefile->AddSourceGroup(folders);
+          sourceGroup = makefile->GetSourceGroup(folders);
+        }
+      }
+      if (sourceGroup == CM_NULLPTR) {
+        cmSystemTools::Error(
+          "Autogen: Could not create or find source group: ",
+          cmQtAutoGeneratorCommon::Quoted(groupName).c_str());
+        return false;
+      }
+    }
+  }
+  if (sourceGroup != CM_NULLPTR) {
+    sourceGroup->AddGroupFile(fileName);
+  }
+  return true;
+}
+
 static void AcquireScanFiles(cmGeneratorTarget const* target,
                              std::vector<std::string>& mocUicSources,
                              std::vector<std::string>& mocUicHeaders,
@@ -531,11 +586,14 @@ void cmQtAutoGeneratorInitializer::InitializeAutogenSources(
 {
   if (target->GetPropertyAsBool("AUTOMOC")) {
     cmMakefile* makefile = target->Target->GetMakefile();
-    const std::string mocCppFile =
-      GetAutogenTargetBuildDir(target) + "moc_compilation.cpp";
-    cmSourceFile* gf = makefile->GetOrCreateSource(mocCppFile, true);
-    gf->SetProperty("SKIP_AUTOGEN", "On");
+    std::string mocCppFile = GetAutogenTargetBuildDir(target);
+    mocCppFile += "moc_compilation.cpp";
+    {
+      cmSourceFile* gFile = makefile->GetOrCreateSource(mocCppFile, true);
+      gFile->SetProperty("SKIP_AUTOGEN", "On");
+    }
     target->AddSource(mocCppFile);
+    AddToSourceGroup(makefile, mocCppFile, cmQtAutoGeneratorCommon::MOC);
   }
 }
 
@@ -700,9 +758,12 @@ void cmQtAutoGeneratorInitializer::InitializeAutogenTarget(
             autogenProvides.push_back(rccOut);
 
             // Add rcc output file to origin target sources
-            cmSourceFile* gf = makefile->GetOrCreateSource(rccOut, true);
-            gf->SetProperty("SKIP_AUTOGEN", "On");
+            {
+              cmSourceFile* gFile = makefile->GetOrCreateSource(rccOut, true);
+              gFile->SetProperty("SKIP_AUTOGEN", "On");
+            }
             target->AddSource(rccOut);
+            AddToSourceGroup(makefile, rccOut, cmQtAutoGeneratorCommon::RCC);
           }
 
           if (PropertyEnabled(sf, "GENERATED")) {

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=379cf11b3073caeb97727b17db48766624290caa
commit 379cf11b3073caeb97727b17db48766624290caa
Author:     Sebastian Holtermann <sebholt at xwmw.org>
AuthorDate: Wed Mar 15 10:42:37 2017 +0100
Commit:     Sebastian Holtermann <sebholt at xwmw.org>
CommitDate: Thu Mar 16 11:52:20 2017 +0100

    Autogen: Add generator type enum

diff --git a/Source/cmQtAutoGeneratorCommon.h b/Source/cmQtAutoGeneratorCommon.h
index ee97b71..b54b6fa 100644
--- a/Source/cmQtAutoGeneratorCommon.h
+++ b/Source/cmQtAutoGeneratorCommon.h
@@ -16,6 +16,13 @@ class cmQtAutoGeneratorCommon
 public:
   static const char* listSep;
 
+  enum GeneratorType
+  {
+    MOC,
+    UIC,
+    RCC
+  };
+
 public:
   /// @brief Returns a the string escaped and enclosed in quotes
   ///

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

Summary of changes:
 Help/manual/cmake-properties.7.rst       |    3 ++
 Help/prop_gbl/AUTOGEN_SOURCE_GROUP.rst   |   15 ++++++
 Help/prop_gbl/AUTOGEN_TARGETS_FOLDER.rst |    4 +-
 Help/prop_gbl/AUTOMOC_SOURCE_GROUP.rst   |    7 +++
 Help/prop_gbl/AUTORCC_SOURCE_GROUP.rst   |    7 +++
 Help/prop_tgt/AUTOMOC.rst                |    3 ++
 Help/prop_tgt/AUTORCC.rst                |    3 ++
 Help/release/dev/Autogen_source_group    |    8 ++++
 Source/cmQtAutoGeneratorCommon.h         |    7 +++
 Source/cmQtAutoGeneratorInitializer.cxx  |   73 +++++++++++++++++++++++++++---
 10 files changed, 122 insertions(+), 8 deletions(-)
 create mode 100644 Help/prop_gbl/AUTOGEN_SOURCE_GROUP.rst
 create mode 100644 Help/prop_gbl/AUTOMOC_SOURCE_GROUP.rst
 create mode 100644 Help/prop_gbl/AUTORCC_SOURCE_GROUP.rst
 create mode 100644 Help/release/dev/Autogen_source_group


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list