summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2021-07-20 15:45:34 (GMT)
committerKitware Robot <kwrobot@kitware.com>2021-07-20 15:46:01 (GMT)
commit6cd090807270996837a8aec628f79ac75aef0806 (patch)
tree820612ef1e24af0750616661b0e2a4166d04992c
parent881a9dbe1fc92ac7250921345dd3311b99825604 (diff)
parent9cebdbec77ac59a1394c3a28da43a7bf0bd37fe9 (diff)
downloadCMake-6cd090807270996837a8aec628f79ac75aef0806.zip
CMake-6cd090807270996837a8aec628f79ac75aef0806.tar.gz
CMake-6cd090807270996837a8aec628f79ac75aef0806.tar.bz2
Merge topic 'autogen-ui-header-depends'
9cebdbec77 AUTOUIC: Fix cyclic dependency between generated UI headers and timestamp Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6359
-rw-r--r--Source/cmQtAutoMocUic.cxx20
1 files changed, 14 insertions, 6 deletions
diff --git a/Source/cmQtAutoMocUic.cxx b/Source/cmQtAutoMocUic.cxx
index f5c195f..2753fd5 100644
--- a/Source/cmQtAutoMocUic.cxx
+++ b/Source/cmQtAutoMocUic.cxx
@@ -2248,12 +2248,20 @@ void cmQtAutoMocUicT::JobDepFilesMergeT::Process()
std::for_each(this->MocEval().SourceMappings.begin(),
this->MocEval().SourceMappings.end(), processMappingEntry);
- // Remove SKIP_AUTOMOC files
- dependencies.erase(std::remove_if(dependencies.begin(), dependencies.end(),
- [this](const std::string& dep) {
- return this->MocConst().skipped(dep);
- }),
- dependencies.end());
+ // Remove SKIP_AUTOMOC files.
+ // Also remove AUTOUIC header files to avoid cyclic dependency.
+ dependencies.erase(
+ std::remove_if(dependencies.begin(), dependencies.end(),
+ [this](const std::string& dep) {
+ return this->MocConst().skipped(dep) ||
+ std::any_of(
+ this->UicEval().Includes.begin(),
+ this->UicEval().Includes.end(),
+ [&dep](MappingMapT::value_type const& mapping) {
+ return dep == mapping.second->OutputFile;
+ });
+ }),
+ dependencies.end());
// Remove duplicates to make the depfile smaller
std::sort(dependencies.begin(), dependencies.end());