summaryrefslogtreecommitdiffstats
path: root/Source/cmMakefile.cxx
diff options
context:
space:
mode:
authorStephen Kelly <steveire@gmail.com>2015-05-30 17:39:08 (GMT)
committerBrad King <brad.king@kitware.com>2015-06-04 13:06:41 (GMT)
commit69a038a9e90a8839b69f4cb8826688be611e8b0d (patch)
treec645fe0ad15a511f56a58d9cd201ce14dbd9586f /Source/cmMakefile.cxx
parent0863797037b82f01cb356cb2cd4cdcef7ca8ae48 (diff)
downloadCMake-69a038a9e90a8839b69f4cb8826688be611e8b0d.zip
CMake-69a038a9e90a8839b69f4cb8826688be611e8b0d.tar.gz
CMake-69a038a9e90a8839b69f4cb8826688be611e8b0d.tar.bz2
cmMakefile: Refactor directories specified with the subdirs command.
Store the directories on the cmMakefile as explicitly not-configured-yet.
Diffstat (limited to 'Source/cmMakefile.cxx')
-rw-r--r--Source/cmMakefile.cxx13
1 files changed, 13 insertions, 0 deletions
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index d537f34..ffc6bf9 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -1599,6 +1599,15 @@ void cmMakefile::ConfigureSubDirectory(cmLocalGenerator *lg2)
}
// finally configure the subdir
lg2->Configure();
+
+ // at the end handle any old style subdirs
+ for (std::vector<cmLocalGenerator *>::iterator sdi =
+ this->UnConfiguredDirectories.begin();
+ sdi != this->UnConfiguredDirectories.end(); ++sdi)
+ {
+ this->ConfigureSubDirectory(*sdi);
+ }
+
if (this->GetCMakeInstance()->GetDebugOutput())
{
std::string msg=" Returning to ";
@@ -1638,6 +1647,10 @@ void cmMakefile::AddSubDirectory(const std::string& srcPath,
{
this->ConfigureSubDirectory(lg2);
}
+ else
+ {
+ this->UnConfiguredDirectories.push_back(lg2);
+ }
}
void cmMakefile::SetCurrentSourceDirectory(const std::string& dir)