Ninja: Normalize paths of CMake re-run rule dependencies
Send all implicit dependencies through ConvertToNinjaPath. Add CMakeCache.txt before uniquifying the list.
This commit is contained in:
parent
a86865e96c
commit
2c426bfb2d
|
@ -1110,16 +1110,24 @@ void cmGlobalNinjaGenerator::WriteTargetRebuildManifest(std::ostream& os)
|
||||||
/*restat=*/ false,
|
/*restat=*/ false,
|
||||||
/*generator=*/ true);
|
/*generator=*/ true);
|
||||||
|
|
||||||
|
cmLocalNinjaGenerator *ng = static_cast<cmLocalNinjaGenerator *>(lg);
|
||||||
|
|
||||||
cmNinjaDeps implicitDeps;
|
cmNinjaDeps implicitDeps;
|
||||||
for(std::vector<cmLocalGenerator*>::const_iterator i =
|
for(std::vector<cmLocalGenerator*>::const_iterator i =
|
||||||
this->LocalGenerators.begin(); i != this->LocalGenerators.end(); ++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());
|
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());
|
std::sort(implicitDeps.begin(), implicitDeps.end());
|
||||||
implicitDeps.erase(std::unique(implicitDeps.begin(), implicitDeps.end()),
|
implicitDeps.erase(std::unique(implicitDeps.begin(), implicitDeps.end()),
|
||||||
implicitDeps.end());
|
implicitDeps.end());
|
||||||
implicitDeps.push_back("CMakeCache.txt");
|
|
||||||
|
|
||||||
this->WriteBuild(os,
|
this->WriteBuild(os,
|
||||||
"Re-run CMake if any of its inputs changed.",
|
"Re-run CMake if any of its inputs changed.",
|
||||||
|
|
Loading…
Reference in New Issue