diff options
author | Brad King <brad.king@kitware.com> | 2014-01-21 18:18:40 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2014-01-21 19:29:55 (GMT) |
commit | 2c426bfb2dbb0d00aee4eb68c53ddaa18d32bdaa (patch) | |
tree | 560451ff792936ce32f7d0c50e44794d6e9d8587 /Source/cmGlobalNinjaGenerator.cxx | |
parent | a86865e96c55c8a35615c24af0cf1c990f4bba68 (diff) | |
download | CMake-2c426bfb2dbb0d00aee4eb68c53ddaa18d32bdaa.zip CMake-2c426bfb2dbb0d00aee4eb68c53ddaa18d32bdaa.tar.gz CMake-2c426bfb2dbb0d00aee4eb68c53ddaa18d32bdaa.tar.bz2 |
Ninja: Normalize paths of CMake re-run rule dependencies
Send all implicit dependencies through ConvertToNinjaPath.
Add CMakeCache.txt before uniquifying the list.
Diffstat (limited to 'Source/cmGlobalNinjaGenerator.cxx')
-rw-r--r-- | Source/cmGlobalNinjaGenerator.cxx | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/Source/cmGlobalNinjaGenerator.cxx b/Source/cmGlobalNinjaGenerator.cxx index 5e1f1ed..731bc00 100644 --- a/Source/cmGlobalNinjaGenerator.cxx +++ b/Source/cmGlobalNinjaGenerator.cxx @@ -1110,16 +1110,24 @@ void cmGlobalNinjaGenerator::WriteTargetRebuildManifest(std::ostream& os) /*restat=*/ false, /*generator=*/ true); + cmLocalNinjaGenerator *ng = static_cast<cmLocalNinjaGenerator *>(lg); + cmNinjaDeps implicitDeps; - for (std::vector<cmLocalGenerator *>::const_iterator i = - this->LocalGenerators.begin(); i != this->LocalGenerators.end(); ++i) { - const std::vector<std::string>& lf = (*i)->GetMakefile()->GetListFiles(); - implicitDeps.insert(implicitDeps.end(), lf.begin(), lf.end()); - } + for(std::vector<cmLocalGenerator*>::const_iterator i = + this->LocalGenerators.begin(); i != this->LocalGenerators.end(); ++i) + { + std::vector<std::string> const& lf = (*i)->GetMakefile()->GetListFiles(); + for(std::vector<std::string>::const_iterator fi = lf.begin(); + fi != lf.end(); ++fi) + { + implicitDeps.push_back(ng->ConvertToNinjaPath(fi->c_str())); + } + } + implicitDeps.push_back("CMakeCache.txt"); + std::sort(implicitDeps.begin(), implicitDeps.end()); implicitDeps.erase(std::unique(implicitDeps.begin(), implicitDeps.end()), implicitDeps.end()); - implicitDeps.push_back("CMakeCache.txt"); this->WriteBuild(os, "Re-run CMake if any of its inputs changed.", |