diff options
author | Brad King <brad.king@kitware.com> | 2021-03-30 13:54:02 (GMT) |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2021-03-30 13:54:09 (GMT) |
commit | c0092247fe380ec9df065c4fbdafcd610ef09ddc (patch) | |
tree | 880ca70591ba149b719f49c0bb79455291997f92 /Source | |
parent | 16b4d5fc8413f30c2c746d793f82f106626dd742 (diff) | |
parent | ca7c76269b0dbf899f206c6d0c6d7b26fd0af223 (diff) | |
download | CMake-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.cxx | 6 | ||||
-rw-r--r-- | Source/cmQtAutoMocUic.cxx | 7 |
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()), |