summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2021-03-30 13:54:02 (GMT)
committerKitware Robot <kwrobot@kitware.com>2021-03-30 13:54:09 (GMT)
commitc0092247fe380ec9df065c4fbdafcd610ef09ddc (patch)
tree880ca70591ba149b719f49c0bb79455291997f92 /Source
parent16b4d5fc8413f30c2c746d793f82f106626dd742 (diff)
parentca7c76269b0dbf899f206c6d0c6d7b26fd0af223 (diff)
downloadCMake-c0092247fe380ec9df065c4fbdafcd610ef09ddc.zip
CMake-c0092247fe380ec9df065c4fbdafcd610ef09ddc.tar.gz
CMake-c0092247fe380ec9df065c4fbdafcd610ef09ddc.tar.bz2
Merge topic 'ninja-automoc-cycle' into release-3.20
ca7c76269b Tests: Add test for Ninja automoc dependency cyle 54ad3e4958 autogen: Don't include SKIP_AUTOMOC files in depfile Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Jörg Bornemann <joerg.bornemann@qt.io> Acked-by: Craig Scott <craig.scott@crascit.com> Merge-request: !5956
Diffstat (limited to 'Source')
-rw-r--r--Source/cmQtAutoGenInitializer.cxx6
-rw-r--r--Source/cmQtAutoMocUic.cxx7
2 files changed, 10 insertions, 3 deletions
diff --git a/Source/cmQtAutoGenInitializer.cxx b/Source/cmQtAutoGenInitializer.cxx
index d4138d9..a1816f1 100644
--- a/Source/cmQtAutoGenInitializer.cxx
+++ b/Source/cmQtAutoGenInitializer.cxx
@@ -1463,15 +1463,15 @@ bool cmQtAutoGenInitializer::SetupWriteAutogenInfo()
headers.reserve(this->AutogenTarget.Headers.size());
for (auto const& pair : this->AutogenTarget.Headers) {
MUFile const* const muf = pair.second.get();
- if (muf->Generated && !this->CMP0071Accept) {
- continue;
- }
if (muf->SkipMoc) {
moc_skip.insert(muf->FullPath);
}
if (muf->SkipUic) {
uic_skip.insert(muf->FullPath);
}
+ if (muf->Generated && !this->CMP0071Accept) {
+ continue;
+ }
if (muf->MocIt || muf->UicIt) {
headers.emplace_back(muf);
}
diff --git a/Source/cmQtAutoMocUic.cxx b/Source/cmQtAutoMocUic.cxx
index 1e3bf06..535f786 100644
--- a/Source/cmQtAutoMocUic.cxx
+++ b/Source/cmQtAutoMocUic.cxx
@@ -2248,6 +2248,13 @@ 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 duplicates to make the depfile smaller
std::sort(dependencies.begin(), dependencies.end());
dependencies.erase(std::unique(dependencies.begin(), dependencies.end()),