summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2013-06-25 12:55:02 (GMT)
committerCMake Topic Stage <kwrobot@kitware.com>2013-06-25 12:55:02 (GMT)
commitaecacd093b25001dcec0bdc5e612880fae6ee1e1 (patch)
tree7fad20c1c35ff14230225ac6347bafda78a4ca56
parent493489665e6ff98be614a1fe8f73d9484a0ca1b0 (diff)
parentad502502dfee281e5b0ad8ac57057d72220b4380 (diff)
downloadCMake-aecacd093b25001dcec0bdc5e612880fae6ee1e1.zip
CMake-aecacd093b25001dcec0bdc5e612880fae6ee1e1.tar.gz
CMake-aecacd093b25001dcec0bdc5e612880fae6ee1e1.tar.bz2
Merge topic '13582_configured_file_regeneration'
ad50250 cmMakefile: Track configured files so we can regenerate them (#13582) 4a6397a Ninja: Track configured files so we can regenerate them.
-rw-r--r--Source/cmGlobalNinjaGenerator.cxx3
-rw-r--r--Source/cmMakefile.cxx1
2 files changed, 4 insertions, 0 deletions
diff --git a/Source/cmGlobalNinjaGenerator.cxx b/Source/cmGlobalNinjaGenerator.cxx
index fff972e..e2c0e18 100644
--- a/Source/cmGlobalNinjaGenerator.cxx
+++ b/Source/cmGlobalNinjaGenerator.cxx
@@ -961,6 +961,9 @@ void cmGlobalNinjaGenerator::WriteTargetRebuildManifest(std::ostream& os)
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());
+
+ const std::vector<std::string>& of = (*i)->GetMakefile()->GetOutputFiles();
+ implicitDeps.insert(implicitDeps.end(), of.begin(), of.end());
}
std::sort(implicitDeps.begin(), implicitDeps.end());
implicitDeps.erase(std::unique(implicitDeps.begin(), implicitDeps.end()),
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index d5d99a0..f3a66ba 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -3371,6 +3371,7 @@ int cmMakefile::ConfigureFile(const char* infile, const char* outfile,
std::string sinfile = infile;
this->AddCMakeDependFile(sinfile);
cmSystemTools::ConvertToUnixSlashes(soutfile);
+ this->AddCMakeOutputFile(soutfile);
mode_t perm = 0;
cmSystemTools::GetPermissions(sinfile.c_str(), perm);
std::string::size_type pos = soutfile.rfind('/');