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 <sebh...@xwmw.org> AuthorDate: Thu Mar 16 10:56:17 2017 +0000 Commit: Kitware Robot <kwro...@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 <sebh...@xwmw.org> AuthorDate: Wed Mar 15 12:09:03 2017 +0100 Commit: Sebastian Holtermann <sebh...@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 <sebh...@xwmw.org> AuthorDate: Wed Mar 15 12:01:15 2017 +0100 Commit: Sebastian Holtermann <sebh...@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 <sebh...@xwmw.org> AuthorDate: Wed Mar 15 10:50:23 2017 +0100 Commit: Sebastian Holtermann <sebh...@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 <sebh...@xwmw.org> AuthorDate: Wed Mar 15 10:42:37 2017 +0100 Commit: Sebastian Holtermann <sebh...@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 _______________________________________________ Cmake-commits mailing list Cmake-commits@cmake.org http://public.kitware.com/mailman/listinfo/cmake-commits