Merge topic 'ninja-normalize-cmake-rerun-deps'

2c426bfb Ninja: Normalize paths of CMake re-run rule dependencies
This commit is contained in:
Brad King 2014-01-27 13:03:35 -05:00 committed by CMake Topic Stage
commit adf309cd0d

View File

@ -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.",