summaryrefslogtreecommitdiffstats
path: root/Source/cmGlobalNinjaGenerator.cxx
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2014-01-21 18:18:40 (GMT)
committerBrad King <brad.king@kitware.com>2014-01-21 19:29:55 (GMT)
commit2c426bfb2dbb0d00aee4eb68c53ddaa18d32bdaa (patch)
tree560451ff792936ce32f7d0c50e44794d6e9d8587 /Source/cmGlobalNinjaGenerator.cxx
parenta86865e96c55c8a35615c24af0cf1c990f4bba68 (diff)
downloadCMake-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.cxx20
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.",