[Cmake-commits] CMake branch, next, updated. v3.2.3-1412-gb48810b

Stephen Kelly steveire at gmail.com
Tue Jun 2 19:07:54 EDT 2015


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, next has been updated
       via  b48810b703bd8a53f3739440f936bb95f0f052b9 (commit)
       via  fdf759ddf39fffe648bc05aab840cd859c47bc71 (commit)
       via  1c92c5d833fc96a3aedb1166812c098126ee90f5 (commit)
       via  4685519531363cda73a5b1fded7edf8e9ff8aae7 (commit)
       via  70b0cbb9e68f4e4e46a856ce1ae968fbfaf27a48 (commit)
       via  ed34628d7e81c7dc9f982a882f47e1426a7e24a8 (commit)
       via  f0b67e1cf49c0d181d5f2d5b6fccda68e0c23492 (commit)
       via  1073d788a0fec128d862662332b31f2df8735e01 (commit)
       via  809ebda37ec24c6f3484fb680860a9ed96923317 (commit)
       via  29055df340d2acb30e28b3e8ae99be27bc742d30 (commit)
      from  4f8124e6c591534d26d38ccd6d2d2eb25d6a6a29 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=b48810b703bd8a53f3739440f936bb95f0f052b9
commit b48810b703bd8a53f3739440f936bb95f0f052b9
Merge: 4f8124e fdf759d
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Tue Jun 2 19:07:53 2015 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Tue Jun 2 19:07:53 2015 -0400

    Merge topic 'cmMakefile-Configure' into next
    
    fdf759dd cmMakefile: Introduce a local cmMakefile variable.
    1c92c5d8 cmMakefile: Store unconfigured cmMakefiles.
    46855195 cmMakefile: Implement ConfigureSubDirectory in terms of cmMakefile.
    70b0cbb9 cmMakefile: Move Configure responsibility from cmLocalGenerator.
    ed34628d cmake: Replace CurrentLocalGenerator concept with CurrentMakefile.
    f0b67e1c cmMakefile: Refactor directories specified with the subdirs command.
    1073d788 cmLocalGenerator: ComputeObjectMaxPath just before generating.
    809ebda3 Merge Configure state with GeneratingBuildSystem state.
    29055df3 cmLocalGenerator: De-virtualize Configure().


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=fdf759ddf39fffe648bc05aab840cd859c47bc71
commit fdf759ddf39fffe648bc05aab840cd859c47bc71
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Wed Jun 3 00:57:31 2015 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Wed Jun 3 01:06:18 2015 +0200

    cmMakefile: Introduce a local cmMakefile variable.

diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index ae9fe32..7e103bc 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -1685,21 +1685,23 @@ void cmMakefile::AddSubDirectory(const std::string& srcPath,
         ->MakeLocalGenerator(newSnapshot, this->LocalGenerator);
   this->GetGlobalGenerator()->AddLocalGenerator(lg2);
 
+  cmMakefile* subMf = lg2->GetMakefile();
+
   // set the subdirs start dirs
-  lg2->GetMakefile()->SetCurrentSourceDirectory(srcPath);
-  lg2->GetMakefile()->SetCurrentBinaryDirectory(binPath);
+  subMf->SetCurrentSourceDirectory(srcPath);
+  subMf->SetCurrentBinaryDirectory(binPath);
   if(excludeFromAll)
     {
-    lg2->GetMakefile()->SetProperty("EXCLUDE_FROM_ALL", "TRUE");
+    subMf->SetProperty("EXCLUDE_FROM_ALL", "TRUE");
     }
 
   if (immediate)
     {
-    this->ConfigureSubDirectory(lg2->GetMakefile());
+    this->ConfigureSubDirectory(subMf);
     }
   else
     {
-    this->UnConfiguredDirectories.push_back(lg2->GetMakefile());
+    this->UnConfiguredDirectories.push_back(subMf);
     }
 }
 

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1c92c5d833fc96a3aedb1166812c098126ee90f5
commit 1c92c5d833fc96a3aedb1166812c098126ee90f5
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Wed Jun 3 00:55:00 2015 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Wed Jun 3 01:06:15 2015 +0200

    cmMakefile: Store unconfigured cmMakefiles.
    
    Not cmLocalGenerators.

diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index 4079ccf..ae9fe32 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -1598,13 +1598,13 @@ void cmMakefile::Configure()
   this->ProcessBuildsystemFile(currentStart.c_str());
 
    // at the end handle any old style subdirs
-  std::vector<cmLocalGenerator*> subdirs = this->UnConfiguredDirectories;
+  std::vector<cmMakefile*> subdirs = this->UnConfiguredDirectories;
 
   // for each subdir recurse
-  std::vector<cmLocalGenerator*>::iterator sdi = subdirs.begin();
+  std::vector<cmMakefile*>::iterator sdi = subdirs.begin();
   for (; sdi != subdirs.end(); ++sdi)
     {
-    this->ConfigureSubDirectory((*sdi)->GetMakefile());
+    this->ConfigureSubDirectory(*sdi);
     }
 
   this->AddCMakeDependFilesFromUser();
@@ -1699,7 +1699,7 @@ void cmMakefile::AddSubDirectory(const std::string& srcPath,
     }
   else
     {
-    this->UnConfiguredDirectories.push_back(lg2);
+    this->UnConfiguredDirectories.push_back(lg2->GetMakefile());
     }
 }
 
diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h
index 5807707..4174f44 100644
--- a/Source/cmMakefile.h
+++ b/Source/cmMakefile.h
@@ -922,7 +922,7 @@ private:
   mutable cmsys::RegularExpression cmAtVarRegex;
   mutable cmsys::RegularExpression cmNamedCurly;
 
-  std::vector<cmLocalGenerator*> UnConfiguredDirectories;
+  std::vector<cmMakefile*> UnConfiguredDirectories;
 
   cmPropertyMap Properties;
 

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=4685519531363cda73a5b1fded7edf8e9ff8aae7
commit 4685519531363cda73a5b1fded7edf8e9ff8aae7
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sat May 30 19:53:02 2015 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Wed Jun 3 01:05:51 2015 +0200

    cmMakefile: Implement ConfigureSubDirectory in terms of cmMakefile.

diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index 05e80d7..4079ccf 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -1604,17 +1604,17 @@ void cmMakefile::Configure()
   std::vector<cmLocalGenerator*>::iterator sdi = subdirs.begin();
   for (; sdi != subdirs.end(); ++sdi)
     {
-    this->ConfigureSubDirectory(*sdi);
+    this->ConfigureSubDirectory((*sdi)->GetMakefile());
     }
 
   this->AddCMakeDependFilesFromUser();
   this->SetConfigured();
 }
 
-void cmMakefile::ConfigureSubDirectory(cmLocalGenerator *lg2)
+void cmMakefile::ConfigureSubDirectory(cmMakefile *mf)
 {
-  lg2->GetMakefile()->InitializeFromParent();
-  std::string currentStart = lg2->GetMakefile()->GetCurrentSourceDirectory();
+  mf->InitializeFromParent();
+  std::string currentStart = mf->GetCurrentSourceDirectory();
   if (this->GetCMakeInstance()->GetDebugOutput())
     {
     std::string msg="   Entering             ";
@@ -1652,11 +1652,11 @@ void cmMakefile::ConfigureSubDirectory(cmLocalGenerator *lg2)
         // NEW behavior prints the error.
         this->IssueMessage(cmake::FATAL_ERROR, e.str());
       }
-    lg2->GetMakefile()->SetConfigured();
+    mf->SetConfigured();
     return;
     }
   // finally configure the subdir
-  lg2->GetMakefile()->Configure();
+  mf->Configure();
 
   if (this->GetCMakeInstance()->GetDebugOutput())
     {
@@ -1695,7 +1695,7 @@ void cmMakefile::AddSubDirectory(const std::string& srcPath,
 
   if (immediate)
     {
-    this->ConfigureSubDirectory(lg2);
+    this->ConfigureSubDirectory(lg2->GetMakefile());
     }
   else
     {
diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h
index e36df36..5807707 100644
--- a/Source/cmMakefile.h
+++ b/Source/cmMakefile.h
@@ -275,7 +275,7 @@ public:
   /**
    * Configure a subdirectory
    */
-  void ConfigureSubDirectory(cmLocalGenerator *);
+  void ConfigureSubDirectory(cmMakefile* mf);
 
   /**
    * Add an include directory to the build.

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=70b0cbb9e68f4e4e46a856ce1ae968fbfaf27a48
commit 70b0cbb9e68f4e4e46a856ce1ae968fbfaf27a48
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sat May 30 19:50:58 2015 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Wed Jun 3 01:05:47 2015 +0200

    cmMakefile: Move Configure responsibility from cmLocalGenerator.
    
    The generator should only have a function at generate time.

diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx
index 1ee5500..1d11475 100644
--- a/Source/cmGlobalGenerator.cxx
+++ b/Source/cmGlobalGenerator.cxx
@@ -1106,7 +1106,7 @@ void cmGlobalGenerator::Configure()
       this->CMakeInstance->GetHomeOutputDirectory());
 
   // now do it
-  lg->Configure();
+  lg->GetMakefile()->Configure();
 
   // update the cache entry for the number of local generators, this is used
   // for progress
diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx
index 9e34d0d..9e6d9d8 100644
--- a/Source/cmLocalGenerator.cxx
+++ b/Source/cmLocalGenerator.cxx
@@ -75,68 +75,6 @@ bool cmLocalGenerator::IsRootMakefile() const
 }
 
 //----------------------------------------------------------------------------
-class cmLocalGeneratorCurrent
-{
-  cmGlobalGenerator* GG;
-  cmMakefile* MF;
-  cmState::Snapshot Snapshot;
-public:
-  cmLocalGeneratorCurrent(cmMakefile* mf)
-    {
-    this->GG = mf->GetGlobalGenerator();
-    this->MF = this->GG->GetCurrentMakefile();
-    this->Snapshot = this->GG->GetCMakeInstance()->GetCurrentSnapshot();
-    this->GG->GetCMakeInstance()->SetCurrentSnapshot(
-          this->GG->GetCMakeInstance()->GetCurrentSnapshot());
-    this->GG->SetCurrentMakefile(mf);
-#if defined(CMAKE_BUILD_WITH_CMAKE)
-    this->GG->GetFileLockPool().PushFileScope();
-#endif
-    }
-  ~cmLocalGeneratorCurrent()
-    {
-#if defined(CMAKE_BUILD_WITH_CMAKE)
-    this->GG->GetFileLockPool().PopFileScope();
-#endif
-    this->GG->SetCurrentMakefile(this->MF);
-    this->GG->GetCMakeInstance()->SetCurrentSnapshot(this->Snapshot);
-    }
-};
-
-//----------------------------------------------------------------------------
-void cmLocalGenerator::Configure()
-{
-  // Manage the global generator's current local generator.
-  cmLocalGeneratorCurrent clg(this->GetMakefile());
-  static_cast<void>(clg);
-
-  // make sure the CMakeFiles dir is there
-  std::string filesDir = this->StateSnapshot.GetCurrentBinaryDirectory();
-  filesDir += cmake::GetCMakeFilesDirectory();
-  cmSystemTools::MakeDirectory(filesDir.c_str());
-
-  std::string currentStart = this->StateSnapshot.GetCurrentSourceDirectory();
-  currentStart += "/CMakeLists.txt";
-  assert(cmSystemTools::FileExists(currentStart.c_str(), true));
-  this->Makefile->ProcessBuildsystemFile(currentStart.c_str());
-
-   // at the end handle any old style subdirs
-  std::vector<cmLocalGenerator *> subdirs =
-      this->GetMakefile()->GetUnConfiguredDirectories();
-
-  // for each subdir recurse
-  std::vector<cmLocalGenerator *>::iterator sdi = subdirs.begin();
-  for (; sdi != subdirs.end(); ++sdi)
-    {
-    this->Makefile->ConfigureSubDirectory(*sdi);
-    }
-
-  this->Makefile->AddCMakeDependFilesFromUser();
-
-  this->Makefile->SetConfigured();
-}
-
-//----------------------------------------------------------------------------
 void cmLocalGenerator::ComputeObjectMaxPath()
 {
   // Choose a maximum object file name length.
diff --git a/Source/cmLocalGenerator.h b/Source/cmLocalGenerator.h
index c972e8f..1359dd6 100644
--- a/Source/cmLocalGenerator.h
+++ b/Source/cmLocalGenerator.h
@@ -47,12 +47,6 @@ public:
   virtual void Generate() {}
 
   /**
-   * Process the CMakeLists files for this directory to fill in the
-   * Makefile ivar
-   */
-  void Configure();
-
-  /**
    * Calls TraceVSDependencies() on all targets of this generator.
    */
   void TraceDependencies();
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index ffc6bf9..05e80d7 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -1553,6 +1553,64 @@ void cmMakefile::InitializeFromParent()
   this->ImportedTargets = parent->ImportedTargets;
 }
 
+//----------------------------------------------------------------------------
+class cmMakefileCurrent
+{
+  cmGlobalGenerator* GG;
+  cmMakefile* MF;
+  cmState::Snapshot Snapshot;
+public:
+  cmMakefileCurrent(cmMakefile* mf)
+    {
+    this->GG = mf->GetGlobalGenerator();
+    this->MF = this->GG->GetCurrentMakefile();
+    this->Snapshot = this->GG->GetCMakeInstance()->GetCurrentSnapshot();
+    this->GG->GetCMakeInstance()->SetCurrentSnapshot(
+          this->GG->GetCMakeInstance()->GetCurrentSnapshot());
+    this->GG->SetCurrentMakefile(mf);
+#if defined(CMAKE_BUILD_WITH_CMAKE)
+    this->GG->GetFileLockPool().PushFileScope();
+#endif
+    }
+  ~cmMakefileCurrent()
+    {
+#if defined(CMAKE_BUILD_WITH_CMAKE)
+    this->GG->GetFileLockPool().PopFileScope();
+#endif
+    this->GG->SetCurrentMakefile(this->MF);
+    this->GG->GetCMakeInstance()->SetCurrentSnapshot(this->Snapshot);
+    }
+};
+
+//----------------------------------------------------------------------------
+void cmMakefile::Configure()
+{
+  cmMakefileCurrent cmf(this);
+
+  // make sure the CMakeFiles dir is there
+  std::string filesDir = this->StateSnapshot.GetCurrentBinaryDirectory();
+  filesDir += cmake::GetCMakeFilesDirectory();
+  cmSystemTools::MakeDirectory(filesDir.c_str());
+
+  std::string currentStart = this->StateSnapshot.GetCurrentSourceDirectory();
+  currentStart += "/CMakeLists.txt";
+  assert(cmSystemTools::FileExists(currentStart.c_str(), true));
+  this->ProcessBuildsystemFile(currentStart.c_str());
+
+   // at the end handle any old style subdirs
+  std::vector<cmLocalGenerator*> subdirs = this->UnConfiguredDirectories;
+
+  // for each subdir recurse
+  std::vector<cmLocalGenerator*>::iterator sdi = subdirs.begin();
+  for (; sdi != subdirs.end(); ++sdi)
+    {
+    this->ConfigureSubDirectory(*sdi);
+    }
+
+  this->AddCMakeDependFilesFromUser();
+  this->SetConfigured();
+}
+
 void cmMakefile::ConfigureSubDirectory(cmLocalGenerator *lg2)
 {
   lg2->GetMakefile()->InitializeFromParent();
@@ -1598,15 +1656,7 @@ void cmMakefile::ConfigureSubDirectory(cmLocalGenerator *lg2)
     return;
     }
   // 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);
-    }
+  lg2->GetMakefile()->Configure();
 
   if (this->GetCMakeInstance()->GetDebugOutput())
     {
diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h
index 509f5c8..e36df36 100644
--- a/Source/cmMakefile.h
+++ b/Source/cmMakefile.h
@@ -262,11 +262,6 @@ public:
       this->LinkDirectories = vec;
     }
 
-  std::vector<cmLocalGenerator*> GetUnConfiguredDirectories() const
-  {
-    return this->UnConfiguredDirectories;
-  }
-
   /**
    * Add a subdirectory to the build.
    */
@@ -275,6 +270,8 @@ public:
                        bool excludeFromAll,
                        bool immediate);
 
+  void Configure();
+
   /**
    * Configure a subdirectory
    */

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ed34628d7e81c7dc9f982a882f47e1426a7e24a8
commit ed34628d7e81c7dc9f982a882f47e1426a7e24a8
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sat May 30 23:50:28 2015 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Wed Jun 3 00:40:28 2015 +0200

    cmake: Replace CurrentLocalGenerator concept with CurrentMakefile.

diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx
index d1842c1..1ee5500 100644
--- a/Source/cmGlobalGenerator.cxx
+++ b/Source/cmGlobalGenerator.cxx
@@ -70,7 +70,7 @@ cmGlobalGenerator::cmGlobalGenerator(cmake* cm)
   this->TryCompileTimeout = 0;
 
   this->ExtraGenerator = 0;
-  this->CurrentLocalGenerator = 0;
+  this->CurrentMakefile = 0;
   this->TryCompileOuterMakefile = 0;
 }
 
@@ -1281,7 +1281,7 @@ void cmGlobalGenerator::Generate()
   // Generate project files
   for (i = 0; i < this->LocalGenerators.size(); ++i)
     {
-    this->SetCurrentLocalGenerator(this->LocalGenerators[i]);
+    this->SetCurrentMakefile(this->LocalGenerators[i]->GetMakefile());
     this->LocalGenerators[i]->Generate();
     if(!this->LocalGenerators[i]->GetMakefile()->IsOn(
       "CMAKE_SKIP_INSTALL_RULES"))
@@ -1293,7 +1293,7 @@ void cmGlobalGenerator::Generate()
       (static_cast<float>(i)+1.0f)/
        static_cast<float>(this->LocalGenerators.size()));
     }
-  this->SetCurrentLocalGenerator(0);
+  this->SetCurrentMakefile(0);
 
   if(!this->GenerateCPackPropertiesFile())
     {
diff --git a/Source/cmGlobalGenerator.h b/Source/cmGlobalGenerator.h
index 979e971..d2b8504 100644
--- a/Source/cmGlobalGenerator.h
+++ b/Source/cmGlobalGenerator.h
@@ -168,11 +168,13 @@ public:
   const std::vector<cmLocalGenerator *>& GetLocalGenerators() const {
     return this->LocalGenerators;}
 
-  cmLocalGenerator* GetCurrentLocalGenerator()
-                                          {return this->CurrentLocalGenerator;}
+  cmMakefile* GetCurrentMakefile() const
+  {
+    return this->CurrentMakefile;
+  }
 
-  void SetCurrentLocalGenerator(cmLocalGenerator* lg)
-                                            {this->CurrentLocalGenerator = lg;}
+  void SetCurrentMakefile(cmMakefile* mf)
+  {this->CurrentMakefile = mf;}
 
   void AddLocalGenerator(cmLocalGenerator *lg);
 
@@ -406,7 +408,7 @@ protected:
   std::string ConfiguredFilesPath;
   cmake *CMakeInstance;
   std::vector<cmLocalGenerator *> LocalGenerators;
-  cmLocalGenerator* CurrentLocalGenerator;
+  cmMakefile* CurrentMakefile;
   // map from project name to vector of local generators in that project
   std::map<std::string, std::vector<cmLocalGenerator*> > ProjectMap;
   std::map<cmLocalGenerator*, std::set<cmTarget const*> >
diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx
index e9eca28..9e34d0d 100644
--- a/Source/cmLocalGenerator.cxx
+++ b/Source/cmLocalGenerator.cxx
@@ -78,16 +78,17 @@ bool cmLocalGenerator::IsRootMakefile() const
 class cmLocalGeneratorCurrent
 {
   cmGlobalGenerator* GG;
-  cmLocalGenerator* LG;
+  cmMakefile* MF;
   cmState::Snapshot Snapshot;
 public:
-  cmLocalGeneratorCurrent(cmLocalGenerator* lg)
+  cmLocalGeneratorCurrent(cmMakefile* mf)
     {
-    this->GG = lg->GetGlobalGenerator();
-    this->LG = this->GG->GetCurrentLocalGenerator();
+    this->GG = mf->GetGlobalGenerator();
+    this->MF = this->GG->GetCurrentMakefile();
     this->Snapshot = this->GG->GetCMakeInstance()->GetCurrentSnapshot();
-    this->GG->GetCMakeInstance()->SetCurrentSnapshot(lg->GetStateSnapshot());
-    this->GG->SetCurrentLocalGenerator(lg);
+    this->GG->GetCMakeInstance()->SetCurrentSnapshot(
+          this->GG->GetCMakeInstance()->GetCurrentSnapshot());
+    this->GG->SetCurrentMakefile(mf);
 #if defined(CMAKE_BUILD_WITH_CMAKE)
     this->GG->GetFileLockPool().PushFileScope();
 #endif
@@ -97,7 +98,7 @@ public:
 #if defined(CMAKE_BUILD_WITH_CMAKE)
     this->GG->GetFileLockPool().PopFileScope();
 #endif
-    this->GG->SetCurrentLocalGenerator(this->LG);
+    this->GG->SetCurrentMakefile(this->MF);
     this->GG->GetCMakeInstance()->SetCurrentSnapshot(this->Snapshot);
     }
 };
@@ -106,7 +107,7 @@ public:
 void cmLocalGenerator::Configure()
 {
   // Manage the global generator's current local generator.
-  cmLocalGeneratorCurrent clg(this);
+  cmLocalGeneratorCurrent clg(this->GetMakefile());
   static_cast<void>(clg);
 
   // make sure the CMakeFiles dir is there
diff --git a/Source/cmQtAutoGenerators.cxx b/Source/cmQtAutoGenerators.cxx
index cbb06cd..fbd2946 100644
--- a/Source/cmQtAutoGenerators.cxx
+++ b/Source/cmQtAutoGenerators.cxx
@@ -1215,7 +1215,7 @@ bool cmQtAutoGenerators::Run(const std::string& targetDirectory,
   cmLocalGenerator* lg = gg.MakeLocalGenerator();
   lg->GetMakefile()->SetCurrentBinaryDirectory(targetDirectory);
   lg->GetMakefile()->SetCurrentSourceDirectory(targetDirectory);
-  gg.SetCurrentLocalGenerator(lg);
+  gg.SetCurrentMakefile(lg->GetMakefile());
 
   this->ReadAutogenInfoFile(lg->GetMakefile(), targetDirectory, config);
   this->ReadOldMocDefinitionsFile(lg->GetMakefile(), targetDirectory);
diff --git a/Source/cmakemain.cxx b/Source/cmakemain.cxx
index e5f4700..cc30732 100644
--- a/Source/cmakemain.cxx
+++ b/Source/cmakemain.cxx
@@ -113,12 +113,7 @@ static cmMakefile* cmakemainGetMakefile(void *clientdata)
     cmGlobalGenerator* gg=cm->GetGlobalGenerator();
     if (gg)
       {
-      cmLocalGenerator* lg=gg->GetCurrentLocalGenerator();
-      if (lg)
-        {
-        cmMakefile* mf = lg->GetMakefile();
-        return mf;
-        }
+      return gg->GetCurrentMakefile();
       }
     }
   return 0;

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f0b67e1cf49c0d181d5f2d5b6fccda68e0c23492
commit f0b67e1cf49c0d181d5f2d5b6fccda68e0c23492
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sat May 30 19:39:08 2015 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Wed Jun 3 00:40:28 2015 +0200

    cmMakefile: Refactor directories specified with the subdirs command.
    
    Store the directories on the cmMakefile as explicitly not-configured-yet.

diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx
index c5db084..e9eca28 100644
--- a/Source/cmLocalGenerator.cxx
+++ b/Source/cmLocalGenerator.cxx
@@ -119,18 +119,15 @@ void cmLocalGenerator::Configure()
   assert(cmSystemTools::FileExists(currentStart.c_str(), true));
   this->Makefile->ProcessBuildsystemFile(currentStart.c_str());
 
-  // at the end of the ReadListFile handle any old style subdirs
-  // first get all the subdirectories
-  std::vector<cmLocalGenerator *> subdirs = this->GetChildren();
+   // at the end handle any old style subdirs
+  std::vector<cmLocalGenerator *> subdirs =
+      this->GetMakefile()->GetUnConfiguredDirectories();
 
   // for each subdir recurse
   std::vector<cmLocalGenerator *>::iterator sdi = subdirs.begin();
   for (; sdi != subdirs.end(); ++sdi)
     {
-    if (!(*sdi)->GetMakefile()->IsConfigured())
-      {
-      this->Makefile->ConfigureSubDirectory(*sdi);
-      }
+    this->Makefile->ConfigureSubDirectory(*sdi);
     }
 
   this->Makefile->AddCMakeDependFilesFromUser();
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)
diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h
index a45d837..509f5c8 100644
--- a/Source/cmMakefile.h
+++ b/Source/cmMakefile.h
@@ -262,6 +262,11 @@ public:
       this->LinkDirectories = vec;
     }
 
+  std::vector<cmLocalGenerator*> GetUnConfiguredDirectories() const
+  {
+    return this->UnConfiguredDirectories;
+  }
+
   /**
    * Add a subdirectory to the build.
    */
@@ -920,6 +925,8 @@ private:
   mutable cmsys::RegularExpression cmAtVarRegex;
   mutable cmsys::RegularExpression cmNamedCurly;
 
+  std::vector<cmLocalGenerator*> UnConfiguredDirectories;
+
   cmPropertyMap Properties;
 
   // Unused variable flags

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1073d788a0fec128d862662332b31f2df8735e01
commit 1073d788a0fec128d862662332b31f2df8735e01
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sat May 30 19:34:09 2015 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Wed Jun 3 00:40:28 2015 +0200

    cmLocalGenerator: ComputeObjectMaxPath just before generating.

diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx
index 4fa7a61..d1842c1 100644
--- a/Source/cmGlobalGenerator.cxx
+++ b/Source/cmGlobalGenerator.cxx
@@ -1223,6 +1223,7 @@ void cmGlobalGenerator::Generate()
   this->CreateDefaultGlobalTargets(&globalTargets);
   for (i = 0; i < this->LocalGenerators.size(); ++i)
     {
+    this->LocalGenerators[i]->ComputeObjectMaxPath();
     cmMakefile* mf = this->LocalGenerators[i]->GetMakefile();
     cmTargets* targets = &(mf->GetTargets());
     cmTargets::iterator tit;
diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx
index a46660b..c5db084 100644
--- a/Source/cmLocalGenerator.cxx
+++ b/Source/cmLocalGenerator.cxx
@@ -135,8 +135,6 @@ void cmLocalGenerator::Configure()
 
   this->Makefile->AddCMakeDependFilesFromUser();
 
-  this->ComputeObjectMaxPath();
-
   this->Makefile->SetConfigured();
 }
 
diff --git a/Source/cmLocalGenerator.h b/Source/cmLocalGenerator.h
index 8a1649e..c972e8f 100644
--- a/Source/cmLocalGenerator.h
+++ b/Source/cmLocalGenerator.h
@@ -383,6 +383,7 @@ public:
   bool IsMinGWMake() const;
   bool IsNMake() const;
 
+  void ComputeObjectMaxPath();
 protected:
   ///! put all the libraries for a target on into the given stream
   void OutputLinkLibraries(std::string& linkLibraries,
@@ -428,7 +429,6 @@ protected:
 
   std::string& CreateSafeUniqueObjectFileName(const std::string& sin,
                                               std::string const& dir_max);
-  void ComputeObjectMaxPath();
 
   virtual std::string ConvertToLinkReference(std::string const& lib,
                                              OutputFormat format = SHELL);

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=809ebda37ec24c6f3484fb680860a9ed96923317
commit 809ebda37ec24c6f3484fb680860a9ed96923317
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sat May 30 19:26:32 2015 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Wed Jun 3 00:40:28 2015 +0200

    Merge Configure state with GeneratingBuildSystem state.

diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx
index cd05c54..4fa7a61 100644
--- a/Source/cmGlobalGenerator.cxx
+++ b/Source/cmGlobalGenerator.cxx
@@ -1280,7 +1280,6 @@ void cmGlobalGenerator::Generate()
   // Generate project files
   for (i = 0; i < this->LocalGenerators.size(); ++i)
     {
-    this->LocalGenerators[i]->GetMakefile()->SetGeneratingBuildSystem();
     this->SetCurrentLocalGenerator(this->LocalGenerators[i]);
     this->LocalGenerators[i]->Generate();
     if(!this->LocalGenerators[i]->GetMakefile()->IsOn(
diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx
index 35f71d3..a46660b 100644
--- a/Source/cmLocalGenerator.cxx
+++ b/Source/cmLocalGenerator.cxx
@@ -59,7 +59,6 @@ cmLocalGenerator::cmLocalGenerator(cmGlobalGenerator* gg,
   this->Makefile = new cmMakefile(this);
 
   this->LinkScriptShell = false;
-  this->Configured = false;
   this->EmitUniversalBinaryFlags = true;
   this->BackwardsCompatibility = 0;
   this->BackwardsCompatibilityFinal = false;
@@ -128,7 +127,7 @@ void cmLocalGenerator::Configure()
   std::vector<cmLocalGenerator *>::iterator sdi = subdirs.begin();
   for (; sdi != subdirs.end(); ++sdi)
     {
-    if (!(*sdi)->Configured)
+    if (!(*sdi)->GetMakefile()->IsConfigured())
       {
       this->Makefile->ConfigureSubDirectory(*sdi);
       }
@@ -138,7 +137,7 @@ void cmLocalGenerator::Configure()
 
   this->ComputeObjectMaxPath();
 
-  this->Configured = true;
+  this->Makefile->SetConfigured();
 }
 
 //----------------------------------------------------------------------------
@@ -3179,11 +3178,6 @@ bool cmLocalGenerator::IsNMake() const
   return this->GetState()->UseNMake();
 }
 
-void cmLocalGenerator::SetConfiguredCMP0014(bool configured)
-{
-  this->Configured = configured;
-}
-
 //----------------------------------------------------------------------------
 std::string
 cmLocalGenerator
@@ -3465,7 +3459,7 @@ cmIML_INT_uint64_t cmLocalGenerator::GetBackwardsCompatibility()
         }
       }
     this->BackwardsCompatibility = CMake_VERSION_ENCODE(major, minor, patch);
-    this->BackwardsCompatibilityFinal = this->Configured;
+    this->BackwardsCompatibilityFinal = this->Makefile->IsConfigured();
     }
 
   return this->BackwardsCompatibility;
diff --git a/Source/cmLocalGenerator.h b/Source/cmLocalGenerator.h
index b635180..8a1649e 100644
--- a/Source/cmLocalGenerator.h
+++ b/Source/cmLocalGenerator.h
@@ -383,8 +383,6 @@ public:
   bool IsMinGWMake() const;
   bool IsNMake() const;
 
-  void SetConfiguredCMP0014(bool configured);
-
 protected:
   ///! put all the libraries for a target on into the given stream
   void OutputLinkLibraries(std::string& linkLibraries,
@@ -451,7 +449,6 @@ protected:
   std::set<cmTarget const*> WarnCMP0063;
 
   bool LinkScriptShell;
-  bool Configured;
   bool EmitUniversalBinaryFlags;
 
   // Hack for ExpandRuleVariable until object-oriented version is
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index 7c74a0f..d537f34 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -146,7 +146,7 @@ cmMakefile::cmMakefile(cmLocalGenerator* localGenerator)
   this->WarnUnused = this->GetCMakeInstance()->GetWarnUnused();
   this->CheckSystemVars = this->GetCMakeInstance()->GetCheckSystemVars();
 
-  this->GeneratingBuildSystem = false;
+  this->Configured = false;
   this->SuppressWatches = false;
 
   // Setup the default include file regular expression (match everything).
@@ -1594,7 +1594,7 @@ void cmMakefile::ConfigureSubDirectory(cmLocalGenerator *lg2)
         // NEW behavior prints the error.
         this->IssueMessage(cmake::FATAL_ERROR, e.str());
       }
-    lg2->SetConfiguredCMP0014(true);
+    lg2->GetMakefile()->SetConfigured();
     return;
     }
   // finally configure the subdir
diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h
index efd73a1..a45d837 100644
--- a/Source/cmMakefile.h
+++ b/Source/cmMakefile.h
@@ -781,8 +781,8 @@ public:
     return this->CompileDefinitionsEntries;
   }
 
-  bool IsGeneratingBuildSystem() const { return this->GeneratingBuildSystem; }
-  void SetGeneratingBuildSystem(){ this->GeneratingBuildSystem = true; }
+  bool IsConfigured() const { return this->Configured; }
+  void SetConfigured(){ this->Configured = true; }
 
   void AddQtUiFileWithOptions(cmSourceFile *sf);
   std::vector<cmSourceFile*> GetQtUiFilesWithOptions() const;
@@ -994,7 +994,7 @@ private:
                                   long line,
                                   bool removeEmpty,
                                   bool replaceAt) const;
-  bool GeneratingBuildSystem;
+  bool Configured;
   /**
    * Old version of GetSourceFileWithOutput(const std::string&) kept for
    * backward-compatibility. It implements a linear search and support
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index 70005b4..1d1dced 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -764,7 +764,7 @@ void cmTarget::GetSourceFiles(std::vector<std::string> &files,
                                  "SOURCES")
                         != debugProperties.end();
 
-  if (this->Makefile->IsGeneratingBuildSystem())
+  if (this->Makefile->IsConfigured())
     {
     this->DebugSourcesDone = true;
     }
@@ -2106,7 +2106,7 @@ cmTarget::GetIncludeDirectories(const std::string& config,
                                  "INCLUDE_DIRECTORIES")
                         != debugProperties.end();
 
-  if (this->Makefile->IsGeneratingBuildSystem())
+  if (this->Makefile->IsConfigured())
     {
     this->DebugIncludesDone = true;
     }
@@ -2277,7 +2277,7 @@ void cmTarget::GetCompileOptions(std::vector<std::string> &result,
                                  "COMPILE_OPTIONS")
                         != debugProperties.end();
 
-  if (this->Makefile->IsGeneratingBuildSystem())
+  if (this->Makefile->IsConfigured())
     {
     this->DebugCompileOptionsDone = true;
     }
@@ -2348,7 +2348,7 @@ void cmTarget::GetCompileDefinitions(std::vector<std::string> &list,
                                 "COMPILE_DEFINITIONS")
                         != debugProperties.end();
 
-  if (this->Makefile->IsGeneratingBuildSystem())
+  if (this->Makefile->IsConfigured())
     {
     this->DebugCompileDefinitionsDone = true;
     }
@@ -2449,7 +2449,7 @@ void cmTarget::GetCompileFeatures(std::vector<std::string> &result,
                                  "COMPILE_FEATURES")
                         != debugProperties.end();
 
-  if (this->Makefile->IsGeneratingBuildSystem())
+  if (this->Makefile->IsConfigured())
     {
     this->DebugCompileFeaturesDone = true;
     }
@@ -4857,7 +4857,7 @@ cmTarget::ReportPropertyOrigin(const std::string &p,
                                  p)
                         != debugProperties.end();
 
-  if (this->Makefile->IsGeneratingBuildSystem())
+  if (this->Makefile->IsConfigured())
     {
     this->DebugCompatiblePropertiesDone[p] = true;
     }

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=29055df340d2acb30e28b3e8ae99be27bc742d30
commit 29055df340d2acb30e28b3e8ae99be27bc742d30
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sat May 30 19:12:38 2015 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Wed Jun 3 00:40:27 2015 +0200

    cmLocalGenerator: De-virtualize Configure().
    
    The generators that override it do so in order to populate
    data members which can instead be populated in Generate().

diff --git a/Source/cmLocalGenerator.h b/Source/cmLocalGenerator.h
index f02b5db..b635180 100644
--- a/Source/cmLocalGenerator.h
+++ b/Source/cmLocalGenerator.h
@@ -50,7 +50,7 @@ public:
    * Process the CMakeLists files for this directory to fill in the
    * Makefile ivar
    */
-  virtual void Configure();
+  void Configure();
 
   /**
    * Calls TraceVSDependencies() on all targets of this generator.
diff --git a/Source/cmLocalNinjaGenerator.cxx b/Source/cmLocalNinjaGenerator.cxx
index c08c91f..427ae10 100644
--- a/Source/cmLocalNinjaGenerator.cxx
+++ b/Source/cmLocalNinjaGenerator.cxx
@@ -41,6 +41,15 @@ cmLocalNinjaGenerator::~cmLocalNinjaGenerator()
 
 void cmLocalNinjaGenerator::Generate()
 {
+  // Compute the path to use when referencing the current output
+  // directory from the top output directory.
+  this->HomeRelativeOutputPath =
+    this->Convert(this->Makefile->GetCurrentBinaryDirectory(), HOME_OUTPUT);
+  if(this->HomeRelativeOutputPath == ".")
+    {
+    this->HomeRelativeOutputPath = "";
+    }
+
   this->SetConfigName();
 
   this->WriteProcessedMakefile(this->GetBuildFileStream());
@@ -91,25 +100,6 @@ void cmLocalNinjaGenerator::Generate()
   this->WriteCustomCommandBuildStatements();
 }
 
-// Implemented in:
-//   cmLocalUnixMakefileGenerator3.
-// Used in:
-//   Source/cmMakefile.cxx
-//   Source/cmGlobalGenerator.cxx
-void cmLocalNinjaGenerator::Configure()
-{
-  // Compute the path to use when referencing the current output
-  // directory from the top output directory.
-  this->HomeRelativeOutputPath =
-    this->Convert(this->Makefile->GetCurrentBinaryDirectory(), HOME_OUTPUT);
-  if(this->HomeRelativeOutputPath == ".")
-    {
-    this->HomeRelativeOutputPath = "";
-    }
-  this->cmLocalGenerator::Configure();
-
-}
-
 // TODO: Picked up from cmLocalUnixMakefileGenerator3.  Refactor it.
 std::string cmLocalNinjaGenerator
 ::GetTargetDirectory(cmTarget const& target) const
diff --git a/Source/cmLocalNinjaGenerator.h b/Source/cmLocalNinjaGenerator.h
index 7ae97de..ce966ff 100644
--- a/Source/cmLocalNinjaGenerator.h
+++ b/Source/cmLocalNinjaGenerator.h
@@ -38,8 +38,6 @@ public:
 
   virtual void Generate();
 
-  virtual void Configure();
-
   virtual std::string GetTargetDirectory(cmTarget const& target) const;
 
   const cmGlobalNinjaGenerator* GetGlobalNinjaGenerator() const;
diff --git a/Source/cmLocalUnixMakefileGenerator3.cxx b/Source/cmLocalUnixMakefileGenerator3.cxx
index 3eea59b..c9eea56 100644
--- a/Source/cmLocalUnixMakefileGenerator3.cxx
+++ b/Source/cmLocalUnixMakefileGenerator3.cxx
@@ -98,7 +98,7 @@ cmLocalUnixMakefileGenerator3::~cmLocalUnixMakefileGenerator3()
 }
 
 //----------------------------------------------------------------------------
-void cmLocalUnixMakefileGenerator3::Configure()
+void cmLocalUnixMakefileGenerator3::Generate()
 {
   // Compute the path to use when referencing the current output
   // directory from the top output directory.
@@ -112,12 +112,7 @@ void cmLocalUnixMakefileGenerator3::Configure()
     {
     this->HomeRelativeOutputPath += "/";
     }
-  this->cmLocalGenerator::Configure();
-}
 
-//----------------------------------------------------------------------------
-void cmLocalUnixMakefileGenerator3::Generate()
-{
   // Store the configuration name that will be generated.
   if(const char* config = this->Makefile->GetDefinition("CMAKE_BUILD_TYPE"))
     {
diff --git a/Source/cmLocalUnixMakefileGenerator3.h b/Source/cmLocalUnixMakefileGenerator3.h
index 988d660..f2a1389 100644
--- a/Source/cmLocalUnixMakefileGenerator3.h
+++ b/Source/cmLocalUnixMakefileGenerator3.h
@@ -40,12 +40,6 @@ public:
   virtual ~cmLocalUnixMakefileGenerator3();
 
   /**
-   * Process the CMakeLists files for this directory to fill in the
-   * Makefile ivar
-   */
-  virtual void Configure();
-
-  /**
    * Generate the makefile for this directory.
    */
   virtual void Generate();

-----------------------------------------------------------------------

Summary of changes:
 Source/cmGlobalGenerator.cxx             |   10 ++--
 Source/cmGlobalGenerator.h               |   12 +++--
 Source/cmLocalGenerator.cxx              |   74 +-------------------------
 Source/cmLocalGenerator.h                |   11 +---
 Source/cmLocalNinjaGenerator.cxx         |   28 ++++------
 Source/cmLocalNinjaGenerator.h           |    2 -
 Source/cmLocalUnixMakefileGenerator3.cxx |    7 +--
 Source/cmLocalUnixMakefileGenerator3.h   |    6 ---
 Source/cmMakefile.cxx                    |   85 ++++++++++++++++++++++++++----
 Source/cmMakefile.h                      |   12 +++--
 Source/cmQtAutoGenerators.cxx            |    2 +-
 Source/cmTarget.cxx                      |   12 ++---
 Source/cmakemain.cxx                     |    7 +--
 13 files changed, 115 insertions(+), 153 deletions(-)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list