[Cmake-commits] CMake branch, next, updated. v3.2.3-1444-ga485d7e

Brad King brad.king at kitware.com
Wed Jun 3 11:50:39 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  a485d7e5d7e19f45f2bd01f1b5f0598c0ce670cc (commit)
       via  f88a82607f2394e9ccb8e7fc6bd8e5797ce3d3c8 (commit)
       via  ae4af61668e9ebc38eb8a8e85f5a0af3d6517d89 (commit)
       via  7805063ac86f4b85350d5a8033cf8d897beaac78 (commit)
       via  3747f839a66de5f1bc678d3d32867d17ff95703b (commit)
       via  5571f336c94e580cae30d6dc65aec2b2d92c3b13 (commit)
       via  fe78b21c66c9dc9e3edda70c9ef705c0b005c5bd (commit)
       via  f2b70d0d37492c580a7f76cb6db22c667d35acbd (commit)
       via  f47a1907e683e7dbf09dcce92e314abb34c71d98 (commit)
       via  dcd81731fa862f1914129392c9ad4b216b7ea62c (commit)
       via  2310dfdc144d32666e05769e2947a61828ee2a2c (commit)
       via  3d8c6cd9648089c389c1496fb910d664a5773ab4 (commit)
       via  e44e6bcc045916fcab3b3798d9aa9951c35c1878 (commit)
       via  1335992c8f4e8b96f1a21d5dcc7d65a9fbd84c11 (commit)
      from  8b953130b0c41258944c9de32f2324dbf8285c30 (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=a485d7e5d7e19f45f2bd01f1b5f0598c0ce670cc
commit a485d7e5d7e19f45f2bd01f1b5f0598c0ce670cc
Merge: 8b95313 f88a826
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Wed Jun 3 11:50:23 2015 -0400
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Wed Jun 3 11:50:23 2015 -0400

    Merge branch 'cmMakefile-Configure' into next


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f88a82607f2394e9ccb8e7fc6bd8e5797ce3d3c8
commit f88a82607f2394e9ccb8e7fc6bd8e5797ce3d3c8
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Wed Jun 3 00:57:31 2015 +0200
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Wed Jun 3 11:45:39 2015 -0400

    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=ae4af61668e9ebc38eb8a8e85f5a0af3d6517d89
commit ae4af61668e9ebc38eb8a8e85f5a0af3d6517d89
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Wed Jun 3 00:55:00 2015 +0200
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Wed Jun 3 11:45:39 2015 -0400

    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=7805063ac86f4b85350d5a8033cf8d897beaac78
commit 7805063ac86f4b85350d5a8033cf8d897beaac78
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sat May 30 19:53:02 2015 +0200
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Wed Jun 3 11:45:39 2015 -0400

    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=3747f839a66de5f1bc678d3d32867d17ff95703b
commit 3747f839a66de5f1bc678d3d32867d17ff95703b
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sat May 30 19:50:58 2015 +0200
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Wed Jun 3 11:45:38 2015 -0400

    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 9ab4a27..6048dd3 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=5571f336c94e580cae30d6dc65aec2b2d92c3b13
commit 5571f336c94e580cae30d6dc65aec2b2d92c3b13
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sat May 30 23:50:28 2015 +0200
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Wed Jun 3 11:45:38 2015 -0400

    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 32ef433..9ab4a27 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=fe78b21c66c9dc9e3edda70c9ef705c0b005c5bd
commit fe78b21c66c9dc9e3edda70c9ef705c0b005c5bd
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sat May 30 19:39:08 2015 +0200
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Wed Jun 3 11:45:38 2015 -0400

    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 cebc756..32ef433 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=f2b70d0d37492c580a7f76cb6db22c667d35acbd
commit f2b70d0d37492c580a7f76cb6db22c667d35acbd
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sat May 30 19:34:09 2015 +0200
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Wed Jun 3 11:45:38 2015 -0400

    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 d7ea260..cebc756 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=f47a1907e683e7dbf09dcce92e314abb34c71d98
commit f47a1907e683e7dbf09dcce92e314abb34c71d98
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sat May 30 19:26:32 2015 +0200
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Wed Jun 3 11:45:37 2015 -0400

    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 a35737f..d7ea260 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();
 }
 
 //----------------------------------------------------------------------------
@@ -3178,11 +3177,6 @@ bool cmLocalGenerator::IsNMake() const
   return this->GetState()->UseNMake();
 }
 
-void cmLocalGenerator::SetConfiguredCMP0014(bool configured)
-{
-  this->Configured = configured;
-}
-
 //----------------------------------------------------------------------------
 std::string
 cmLocalGenerator
@@ -3464,7 +3458,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=dcd81731fa862f1914129392c9ad4b216b7ea62c
commit dcd81731fa862f1914129392c9ad4b216b7ea62c
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sat May 30 19:12:38 2015 +0200
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Wed Jun 3 11:45:37 2015 -0400

    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();

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=2310dfdc144d32666e05769e2947a61828ee2a2c
commit 2310dfdc144d32666e05769e2947a61828ee2a2c
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Mon Jun 1 20:23:11 2015 +0200
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Wed Jun 3 11:44:27 2015 -0400

    cmLocalGenerator: Remove 'optional' parameter from Convert.
    
    Port callers away from it.

diff --git a/Source/cmGlobalVisualStudio8Generator.cxx b/Source/cmGlobalVisualStudio8Generator.cxx
index a3ebc61..3102ebc 100644
--- a/Source/cmGlobalVisualStudio8Generator.cxx
+++ b/Source/cmGlobalVisualStudio8Generator.cxx
@@ -310,14 +310,10 @@ bool cmGlobalVisualStudio8Generator::AddCheckTarget()
   cmCustomCommandLine commandLine;
   commandLine.push_back(cmSystemTools::GetCMakeCommand());
   std::string argH = "-H";
-  argH += lg->Convert(mf->GetHomeDirectory(),
-                      cmLocalGenerator::START_OUTPUT,
-                      cmLocalGenerator::UNCHANGED, true);
+  argH += mf->GetHomeDirectory();
   commandLine.push_back(argH);
   std::string argB = "-B";
-  argB += lg->Convert(mf->GetHomeOutputDirectory(),
-                      cmLocalGenerator::START_OUTPUT,
-                      cmLocalGenerator::UNCHANGED, true);
+  argB += mf->GetHomeOutputDirectory();
   commandLine.push_back(argB);
   commandLine.push_back("--check-stamp-list");
   commandLine.push_back(stampList.c_str());
diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx
index f35de03..a35737f 100644
--- a/Source/cmLocalGenerator.cxx
+++ b/Source/cmLocalGenerator.cxx
@@ -517,7 +517,7 @@ void cmLocalGenerator::AddCustomCommandToCreateObject(const char* ofname,
   objectDir = this->Convert(objectDir,START_OUTPUT,SHELL);
   std::string objectFile = this->Convert(ofname,START_OUTPUT,SHELL);
   std::string sourceFile =
-    this->Convert(source.GetFullPath(),START_OUTPUT,SHELL,true);
+      this->ConvertToOutputFormat(source.GetFullPath(), SHELL);
   std::string varString = "CMAKE_";
   varString += lang;
   varString += "_COMPILE_OBJECT";
@@ -1177,7 +1177,7 @@ cmLocalGenerator::ConvertToOutputForExistingCommon(const std::string& remote,
     std::string tmp;
     if(cmSystemTools::GetShortPath(remote, tmp))
       {
-      return this->Convert(tmp, NONE, format, true);
+      return this->ConvertToOutputFormat(tmp, format);
       }
     }
 
@@ -1192,7 +1192,7 @@ cmLocalGenerator::ConvertToOutputForExisting(const std::string& remote,
                                              OutputFormat format)
 {
   // Perform standard conversion.
-  std::string result = this->Convert(remote, local, format, true);
+  std::string result = this->ConvertToOutputFormat(remote, format);
 
   // Consider short-path.
   return this->ConvertToOutputForExistingCommon(remote, result, format);
@@ -1312,7 +1312,7 @@ std::string cmLocalGenerator::GetIncludeFlags(
           includeFlags << fwSearchFlag;
           }
         includeFlags << this->Convert(frameworkDir, START_OUTPUT,
-                                      shellFormat, true)
+                                      shellFormat)
           << " ";
         }
       continue;
@@ -2686,42 +2686,39 @@ const char* cmLocalGenerator::GetRelativeRootPath(RelativeRoot relroot)
 //----------------------------------------------------------------------------
 std::string cmLocalGenerator::Convert(const std::string& source,
                                       RelativeRoot relative,
-                                      OutputFormat output,
-                                      bool optional)
+                                      OutputFormat output)
 {
   // Convert the path to a relative path.
   std::string result = source;
 
-  if (!optional)
+  switch (relative)
     {
-    switch (relative)
-      {
-      case HOME:
-        //result = cmSystemTools::CollapseFullPath(result.c_str());
-        result = this->ConvertToRelativePath(
-            this->GetState()->GetSourceDirectoryComponents(), result);
-        break;
-      case START:
-        //result = cmSystemTools::CollapseFullPath(result.c_str());
-        result = this->ConvertToRelativePath(
-            this->StateSnapshot.GetCurrentSourceDirectoryComponents(), result);
-        break;
-      case HOME_OUTPUT:
-        //result = cmSystemTools::CollapseFullPath(result.c_str());
-        result = this->ConvertToRelativePath(
-            this->GetState()->GetBinaryDirectoryComponents(), result);
-        break;
-      case START_OUTPUT:
-        //result = cmSystemTools::CollapseFullPath(result.c_str());
-        result = this->ConvertToRelativePath(
-            this->StateSnapshot.GetCurrentBinaryDirectoryComponents(), result);
-        break;
-      case FULL:
-        result = cmSystemTools::CollapseFullPath(result);
-        break;
-      case NONE:
-        break;
-      }
+    case HOME:
+      //result = cmSystemTools::CollapseFullPath(result.c_str());
+      result = this->ConvertToRelativePath(
+          this->GetState()->GetSourceDirectoryComponents(), result);
+      break;
+    case START:
+      //result = cmSystemTools::CollapseFullPath(result.c_str());
+      result = this->ConvertToRelativePath(
+          this->StateSnapshot.GetCurrentSourceDirectoryComponents(), result);
+      break;
+    case HOME_OUTPUT:
+      //result = cmSystemTools::CollapseFullPath(result.c_str());
+      result = this->ConvertToRelativePath(
+          this->GetState()->GetBinaryDirectoryComponents(), result);
+      break;
+    case START_OUTPUT:
+      //result = cmSystemTools::CollapseFullPath(result.c_str());
+      result = this->ConvertToRelativePath(
+          this->StateSnapshot.GetCurrentBinaryDirectoryComponents(), result);
+      break;
+    case FULL:
+      result = cmSystemTools::CollapseFullPath(result);
+      break;
+    case NONE:
+      break;
+
     }
   return this->ConvertToOutputFormat(result, output);
 }
@@ -2765,8 +2762,7 @@ std::string cmLocalGenerator::ConvertToOutputFormat(const std::string& source,
 //----------------------------------------------------------------------------
 std::string cmLocalGenerator::Convert(RelativeRoot remote,
                                       const std::string& local,
-                                      OutputFormat output,
-                                      bool optional)
+                                      OutputFormat output, bool optional)
 {
   const char* remotePath = this->GetRelativeRootPath(remote);
 
diff --git a/Source/cmLocalGenerator.h b/Source/cmLocalGenerator.h
index 30b622e..f02b5db 100644
--- a/Source/cmLocalGenerator.h
+++ b/Source/cmLocalGenerator.h
@@ -115,8 +115,7 @@ public:
   std::string ConvertToOutputFormat(const std::string& source,
                                     OutputFormat output);
   std::string Convert(const std::string& remote, RelativeRoot local,
-                      OutputFormat output = UNCHANGED,
-                      bool optional = false);
+                      OutputFormat output = UNCHANGED);
   std::string Convert(RelativeRoot remote, const std::string& local,
                       OutputFormat output = UNCHANGED,
                       bool optional = false);
diff --git a/Source/cmLocalVisualStudio6Generator.cxx b/Source/cmLocalVisualStudio6Generator.cxx
index e5f9f55..a26a1dd 100644
--- a/Source/cmLocalVisualStudio6Generator.cxx
+++ b/Source/cmLocalVisualStudio6Generator.cxx
@@ -235,13 +235,10 @@ void cmLocalVisualStudio6Generator::AddDSPBuildRule(cmTarget& tgt)
   comment += makefileIn;
   std::string args;
   args = "-H";
-  args += this->Convert(this->Makefile->GetHomeDirectory(),
-                        START_OUTPUT, UNCHANGED, true);
+  args += this->Makefile->GetHomeDirectory();
   commandLine.push_back(args);
   args = "-B";
-  args +=
-    this->Convert(this->Makefile->GetHomeOutputDirectory(),
-                  START_OUTPUT, UNCHANGED, true);
+  args += this->Makefile->GetHomeOutputDirectory();
   commandLine.push_back(args);
 
   std::vector<std::string> const& listFiles = this->Makefile->GetListFiles();
diff --git a/Source/cmLocalVisualStudio7Generator.cxx b/Source/cmLocalVisualStudio7Generator.cxx
index c565632..717f33f 100644
--- a/Source/cmLocalVisualStudio7Generator.cxx
+++ b/Source/cmLocalVisualStudio7Generator.cxx
@@ -305,13 +305,10 @@ cmSourceFile* cmLocalVisualStudio7Generator::CreateVCProjBuildRule()
   comment += makefileIn;
   std::string args;
   args = "-H";
-  args += this->Convert(this->Makefile->GetHomeDirectory(),
-                        START_OUTPUT, UNCHANGED, true);
+  args += this->Makefile->GetHomeDirectory();
   commandLine.push_back(args);
   args = "-B";
-  args +=
-    this->Convert(this->Makefile->GetHomeOutputDirectory(),
-                  START_OUTPUT, UNCHANGED, true);
+  args += this->Makefile->GetHomeOutputDirectory();
   commandLine.push_back(args);
   commandLine.push_back("--check-stamp-file");
   std::string stampFilename = this->Convert(stampName.c_str(), FULL,
diff --git a/Source/cmMakefileTargetGenerator.cxx b/Source/cmMakefileTargetGenerator.cxx
index d422e28..9ac9ddb 100644
--- a/Source/cmMakefileTargetGenerator.cxx
+++ b/Source/cmMakefileTargetGenerator.cxx
@@ -1589,9 +1589,8 @@ std::string cmMakefileTargetGenerator::GetFrameworkFlags(std::string const& l)
       if(emitted.insert(*i).second)
         {
         flags += fwSearchFlag;
-        flags += this->Convert(*i,
-                               cmLocalGenerator::START_OUTPUT,
-                               cmLocalGenerator::SHELL, true);
+        flags += this->LocalGenerator
+                     ->ConvertToOutputFormat(*i, cmLocalGenerator::SHELL);
         flags += " ";
         }
       }
diff --git a/Source/cmMakefileTargetGenerator.h b/Source/cmMakefileTargetGenerator.h
index 58044e8..2e1b052 100644
--- a/Source/cmMakefileTargetGenerator.h
+++ b/Source/cmMakefileTargetGenerator.h
@@ -273,10 +273,9 @@ protected:
   std::string Convert(const std::string& source,
                       cmLocalGenerator::RelativeRoot relative,
                       cmLocalGenerator::OutputFormat output =
-                      cmLocalGenerator::UNCHANGED,
-                      bool optional = false)
+                      cmLocalGenerator::UNCHANGED)
   {
-    return this->LocalGenerator->Convert(source, relative, output, optional);
+    return this->LocalGenerator->Convert(source, relative, output);
   }
 
 };
diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx
index 5dfdb14..527524e 100644
--- a/Source/cmVisualStudio10TargetGenerator.cxx
+++ b/Source/cmVisualStudio10TargetGenerator.cxx
@@ -923,10 +923,7 @@ cmVisualStudio10TargetGenerator::ConvertPath(std::string const& path,
   return forceRelative
     ? cmSystemTools::RelativePath(
       this->Makefile->GetCurrentBinaryDirectory(), path.c_str())
-    : this->LocalGenerator->Convert(path.c_str(),
-                                    cmLocalGenerator::START_OUTPUT,
-                                    cmLocalGenerator::UNCHANGED,
-                                    /* optional = */ true);
+    : path.c_str();
 }
 
 void cmVisualStudio10TargetGenerator::ConvertToWindowsSlash(std::string& s)

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=3d8c6cd9648089c389c1496fb910d664a5773ab4
commit 3d8c6cd9648089c389c1496fb910d664a5773ab4
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Mon Jun 1 20:11:53 2015 +0200
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Wed Jun 3 11:44:26 2015 -0400

    cmLocalGenerator: Remove obsolete method.

diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx
index 84461b1..f35de03 100644
--- a/Source/cmLocalGenerator.cxx
+++ b/Source/cmLocalGenerator.cxx
@@ -2670,14 +2670,6 @@ cmLocalGenerator::ConstructComment(cmCustomCommandGenerator const& ccg,
 }
 
 //----------------------------------------------------------------------------
-std::string
-cmLocalGenerator::ConvertToOptionallyRelativeOutputPath(
-                                                    const std::string& remote)
-{
-  return this->Convert(remote, START_OUTPUT, SHELL, true);
-}
-
-//----------------------------------------------------------------------------
 const char* cmLocalGenerator::GetRelativeRootPath(RelativeRoot relroot)
 {
   switch (relroot)
diff --git a/Source/cmLocalGenerator.h b/Source/cmLocalGenerator.h
index 03fe9ba..30b622e 100644
--- a/Source/cmLocalGenerator.h
+++ b/Source/cmLocalGenerator.h
@@ -126,13 +126,6 @@ public:
     */
   const char* GetRelativeRootPath(RelativeRoot relroot);
 
-  /**
-   * Convert the given path to an output path.  The
-   * remote path must use forward slashes and not already be escaped
-   * or quoted.
-   */
-  std::string ConvertToOptionallyRelativeOutputPath(const std::string& remote);
-
   ///! set/get the parent generator
   cmLocalGenerator* GetParent() const {return this->Parent;}
 

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e44e6bcc045916fcab3b3798d9aa9951c35c1878
commit e44e6bcc045916fcab3b3798d9aa9951c35c1878
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Mon Jun 1 20:07:26 2015 +0200
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Wed Jun 3 11:44:26 2015 -0400

    Port away from obsolete method.

diff --git a/Source/cmLocalVisualStudio6Generator.cxx b/Source/cmLocalVisualStudio6Generator.cxx
index ad34857..e5f9f55 100644
--- a/Source/cmLocalVisualStudio6Generator.cxx
+++ b/Source/cmLocalVisualStudio6Generator.cxx
@@ -498,7 +498,7 @@ void cmLocalVisualStudio6Generator
       // Tell MS-Dev what the source is.  If the compiler knows how to
       // build it, then it will.
       fout << "SOURCE=" <<
-        this->ConvertToOptionallyRelativeOutputPath(source.c_str()) << "\n\n";
+        this->ConvertToOutputFormat(source.c_str(), SHELL) << "\n\n";
       if(!depends.empty())
         {
         // Write out the dependencies for the rule.
@@ -507,7 +507,7 @@ void cmLocalVisualStudio6Generator
             d != depends.end(); ++d)
           {
           fout << "\\\n\t" <<
-            this->ConvertToOptionallyRelativeOutputPath(d->c_str());
+            this->ConvertToOutputFormat(d->c_str(), SHELL);
           }
         fout << "\n";
         }
@@ -663,7 +663,7 @@ cmLocalVisualStudio6Generator
       if(this->GetRealDependency(d->c_str(), config.c_str(), dep))
         {
         fout << "\\\n\t" <<
-          this->ConvertToOptionallyRelativeOutputPath(dep.c_str());
+          this->ConvertToOutputFormat(dep.c_str(), SHELL);
         }
       }
     fout << "\n";
@@ -689,7 +689,7 @@ cmLocalVisualStudio6Generator
           ++o)
         {
         // Write a rule for every output generated by this command.
-        fout << this->ConvertToOptionallyRelativeOutputPath(o->c_str())
+        fout << this->ConvertToOutputFormat(o->c_str(), SHELL)
              << " :  \"$(SOURCE)\" \"$(INTDIR)\" \"$(OUTDIR)\"\n\t";
         fout << script.c_str() << "\n\n";
         }
@@ -906,7 +906,7 @@ cmLocalVisualStudio6Generator::GetTargetIncludeOptions(cmTarget &target,
     for(i = includes.begin(); i != includes.end(); ++i)
       {
       std::string tmp =
-        this->ConvertToOptionallyRelativeOutputPath(i->c_str());
+        this->ConvertToOutputFormat(i->c_str(), SHELL);
       if(useShortPath)
         {
         cmSystemTools::GetShortPath(tmp.c_str(), tmp);
@@ -997,14 +997,14 @@ void cmLocalVisualStudio6Generator
   if(libPath.size())
     {
     std::string lpath =
-      this->ConvertToOptionallyRelativeOutputPath(libPath.c_str());
+      this->ConvertToOutputFormat(libPath.c_str(), SHELL);
     if(lpath.size() == 0)
       {
       lpath = ".";
       }
     std::string lpathIntDir = libPath + "$(INTDIR)";
     lpathIntDir =
-      this->ConvertToOptionallyRelativeOutputPath(lpathIntDir.c_str());
+      this->ConvertToOutputFormat(lpathIntDir.c_str(), SHELL);
     if(pathEmitted.insert(lpath).second)
       {
       libOptions += " /LIBPATH:";
@@ -1030,14 +1030,14 @@ void cmLocalVisualStudio6Generator
   if(exePath.size())
     {
     std::string lpath =
-      this->ConvertToOptionallyRelativeOutputPath(exePath.c_str());
+      this->ConvertToOutputFormat(exePath.c_str(), SHELL);
     if(lpath.size() == 0)
       {
       lpath = ".";
       }
     std::string lpathIntDir = exePath + "$(INTDIR)";
     lpathIntDir =
-      this->ConvertToOptionallyRelativeOutputPath(lpathIntDir.c_str());
+      this->ConvertToOutputFormat(lpathIntDir.c_str(), SHELL);
 
     if(pathEmitted.insert(lpath).second)
       {
@@ -1071,14 +1071,14 @@ void cmLocalVisualStudio6Generator
       path += "/";
       }
     std::string lpath =
-      this->ConvertToOptionallyRelativeOutputPath(path.c_str());
+      this->ConvertToOutputFormat(path.c_str(), SHELL);
     if(lpath.size() == 0)
       {
       lpath = ".";
       }
     std::string lpathIntDir = path + "$(INTDIR)";
     lpathIntDir =
-      this->ConvertToOptionallyRelativeOutputPath(lpathIntDir.c_str());
+      this->ConvertToOutputFormat(lpathIntDir.c_str(), SHELL);
     if(pathEmitted.insert(lpath).second)
       {
       libOptions += " /LIBPATH:";
@@ -1142,9 +1142,9 @@ void cmLocalVisualStudio6Generator
           libDebug += ".lib";
           }
         }
-      lib = this->ConvertToOptionallyRelativeOutputPath(lib.c_str());
+      lib = this->ConvertToOutputFormat(lib.c_str(), SHELL);
       libDebug =
-        this->ConvertToOptionallyRelativeOutputPath(libDebug.c_str());
+        this->ConvertToOutputFormat(libDebug.c_str(), SHELL);
 
       if (j->second == cmTarget::GENERAL)
         {
@@ -1367,21 +1367,21 @@ void cmLocalVisualStudio6Generator
     {
 #ifdef CM_USE_OLD_VS6
     outputDirOld =
-      removeQuotes(this->ConvertToOptionallyRelativeOutputPath
-                   (target.GetDirectory().c_str()));
+      removeQuotes(this->ConvertToOutputFormat
+                   (target.GetDirectory().c_str(), SHELL));
 #endif
     outputDirDebug =
-        removeQuotes(this->ConvertToOptionallyRelativeOutputPath(
-                       target.GetDirectory("Debug").c_str()));
+        removeQuotes(this->ConvertToOutputFormat(
+                       target.GetDirectory("Debug").c_str(), SHELL));
     outputDirRelease =
-        removeQuotes(this->ConvertToOptionallyRelativeOutputPath(
-                 target.GetDirectory("Release").c_str()));
+        removeQuotes(this->ConvertToOutputFormat(
+                 target.GetDirectory("Release").c_str(), SHELL));
     outputDirMinSizeRel =
-        removeQuotes(this->ConvertToOptionallyRelativeOutputPath(
-                 target.GetDirectory("MinSizeRel").c_str()));
+        removeQuotes(this->ConvertToOutputFormat(
+                 target.GetDirectory("MinSizeRel").c_str(), SHELL));
     outputDirRelWithDebInfo =
-        removeQuotes(this->ConvertToOptionallyRelativeOutputPath(
-                 target.GetDirectory("RelWithDebInfo").c_str()));
+        removeQuotes(this->ConvertToOutputFormat(
+                 target.GetDirectory("RelWithDebInfo").c_str(), SHELL));
     }
   else if(target.GetType() == cmTarget::OBJECT_LIBRARY)
     {
@@ -1449,15 +1449,13 @@ void cmLocalVisualStudio6Generator
     targetImplibFlagMinSizeRel = "/implib:";
     targetImplibFlagRelWithDebInfo = "/implib:";
     targetImplibFlagDebug +=
-      this->ConvertToOptionallyRelativeOutputPath(fullPathImpDebug.c_str());
+      this->ConvertToOutputFormat(fullPathImpDebug.c_str(), SHELL);
     targetImplibFlagRelease +=
-      this->ConvertToOptionallyRelativeOutputPath(fullPathImpRelease.c_str());
+      this->ConvertToOutputFormat(fullPathImpRelease.c_str(), SHELL);
     targetImplibFlagMinSizeRel +=
-      this->ConvertToOptionallyRelativeOutputPath(
-        fullPathImpMinSizeRel.c_str());
+      this->ConvertToOutputFormat(fullPathImpMinSizeRel.c_str(), SHELL);
     targetImplibFlagRelWithDebInfo +=
-      this->ConvertToOptionallyRelativeOutputPath(
-        fullPathImpRelWithDebInfo.c_str());
+      this->ConvertToOutputFormat(fullPathImpRelWithDebInfo.c_str(), SHELL);
     }
 
 #ifdef CM_USE_OLD_VS6
@@ -1669,12 +1667,12 @@ void cmLocalVisualStudio6Generator
     // to convert to output path for unix to win32 conversion
     cmSystemTools::ReplaceString
       (line, "LIBRARY_OUTPUT_PATH",
-       removeQuotes(this->ConvertToOptionallyRelativeOutputPath
-                    (libPath.c_str())).c_str());
+       removeQuotes(this->ConvertToOutputFormat
+                    (libPath.c_str(), SHELL)).c_str());
     cmSystemTools::ReplaceString
       (line, "EXECUTABLE_OUTPUT_PATH",
-       removeQuotes(this->ConvertToOptionallyRelativeOutputPath
-                    (exePath.c_str())).c_str());
+       removeQuotes(this->ConvertToOutputFormat
+                    (exePath.c_str(), SHELL)).c_str());
 #endif
 
     if(targetBuilds || target.GetType() == cmTarget::OBJECT_LIBRARY)
@@ -1884,9 +1882,9 @@ void cmLocalVisualStudio6Generator
         }
       dir += "$(IntDir)";
       options += "# ADD LINK32 /LIBPATH:";
-      options += this->ConvertToOptionallyRelativeOutputPath(dir.c_str());
+      options += this->ConvertToOutputFormat(dir.c_str(), SHELL);
       options += " /LIBPATH:";
-      options += this->ConvertToOptionallyRelativeOutputPath(d->c_str());
+      options += this->ConvertToOutputFormat(d->c_str(), SHELL);
       options += "\n";
       }
     }
@@ -1897,7 +1895,7 @@ void cmLocalVisualStudio6Generator
     if(l->IsPath)
       {
       options +=
-        this->ConvertToOptionallyRelativeOutputPath(l->Value.c_str());
+        this->ConvertToOutputFormat(l->Value.c_str(), SHELL);
       }
     else if (!l->Target
         || l->Target->GetType() != cmTarget::INTERFACE_LIBRARY)
@@ -1933,7 +1931,7 @@ void cmLocalVisualStudio6Generator
     options += "# ADD ";
     options += tool;
     options += "32 ";
-    options += this->ConvertToOptionallyRelativeOutputPath(oi->c_str());
+    options += this->ConvertToOutputFormat(oi->c_str(), SHELL);
     options += "\n";
     }
 }
diff --git a/Source/cmLocalVisualStudio7Generator.cxx b/Source/cmLocalVisualStudio7Generator.cxx
index 9c031cf..c565632 100644
--- a/Source/cmLocalVisualStudio7Generator.cxx
+++ b/Source/cmLocalVisualStudio7Generator.cxx
@@ -1087,7 +1087,7 @@ void cmLocalVisualStudio7Generator::OutputBuildTool(std::ostream& fout,
   if(!this->ModuleDefinitionFile.empty())
     {
     std::string defFile =
-      this->ConvertToOptionallyRelativeOutputPath(this->ModuleDefinitionFile);
+      this->ConvertToOutputFormat(this->ModuleDefinitionFile, SHELL);
     linkOptions.AddFlag("ModuleDefinitionFile", defFile.c_str());
     }
   switch(target.GetType())
@@ -2234,7 +2234,7 @@ std::string cmLocalVisualStudio7Generator::EscapeForXML(const std::string& s)
 std::string cmLocalVisualStudio7Generator
 ::ConvertToXMLOutputPath(const char* path)
 {
-  std::string ret = this->ConvertToOptionallyRelativeOutputPath(path);
+  std::string ret = this->ConvertToOutputFormat(path, SHELL);
   cmSystemTools::ReplaceString(ret, "&", "&");
   cmSystemTools::ReplaceString(ret, "\"", """);
   cmSystemTools::ReplaceString(ret, "<", "<");
@@ -2245,7 +2245,7 @@ std::string cmLocalVisualStudio7Generator
 std::string cmLocalVisualStudio7Generator
 ::ConvertToXMLOutputPathSingle(const char* path)
 {
-  std::string ret = this->ConvertToOptionallyRelativeOutputPath(path);
+  std::string ret = this->ConvertToOutputFormat(path, SHELL);
   cmSystemTools::ReplaceString(ret, "\"", "");
   cmSystemTools::ReplaceString(ret, "&", "&");
   cmSystemTools::ReplaceString(ret, "<", "<");

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1335992c8f4e8b96f1a21d5dcc7d65a9fbd84c11
commit 1335992c8f4e8b96f1a21d5dcc7d65a9fbd84c11
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Mon Jun 1 19:56:46 2015 +0200
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Wed Jun 3 11:43:31 2015 -0400

    Remove CMAKE_USE_RELATIVE_PATHS variable.
    
    The test for this variable was removed in commit v2.8.8~330^2~7 (complex:
    Remove ancient unused ComplexRelativePaths test, 2011-12-23).
    
    Commit v3.1.0-rc1~425^2~2 (backtrace: Convert to local paths in
    IssueMessage, 2014-03-12) appears to have accidentally made some backtraces
    print relative paths with the variable because conversions which used to be
    done at configure time, before the variable had an effect are now potentially
    done at generate time.
    
    The documentation of the variable says not to use it, and the docs are wrong in
    that the variable actually applies in per-directory scope.
    
    The read of the variable makes it harder to split conversion methods from
    cmLocalGenerator where they don't belong.  Remove it now.

diff --git a/Help/release/dev/remove-CMAKE_USE_RELATIVE_PATHS.rst b/Help/release/dev/remove-CMAKE_USE_RELATIVE_PATHS.rst
new file mode 100644
index 0000000..dd52ace
--- /dev/null
+++ b/Help/release/dev/remove-CMAKE_USE_RELATIVE_PATHS.rst
@@ -0,0 +1,5 @@
+remove-CMAKE_USE_RELATIVE_PATHS
+-------------------------------
+
+* The :variable:`CMAKE_USE_RELATIVE_PATHS` variable no longer has any
+  effect.  Previously it was partially implemented and unreliable.
diff --git a/Help/variable/CMAKE_USE_RELATIVE_PATHS.rst b/Help/variable/CMAKE_USE_RELATIVE_PATHS.rst
index af6f08c..06fe0fb 100644
--- a/Help/variable/CMAKE_USE_RELATIVE_PATHS.rst
+++ b/Help/variable/CMAKE_USE_RELATIVE_PATHS.rst
@@ -1,10 +1,5 @@
 CMAKE_USE_RELATIVE_PATHS
 ------------------------
 
-Use relative paths (May not work!).
-
-If this is set to TRUE, then CMake will use relative paths between the
-source and binary tree.  This option does not work for more
-complicated projects, and relative paths are used when possible.  In
-general, it is not possible to move CMake generated makefiles to a
-different location regardless of the value of this variable.
+This variable has no effect.  The partially implemented effect it
+had in previous releases was removed in CMake 3.4.
diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx
index 7464e90..1301e3e 100644
--- a/Source/cmGlobalXCodeGenerator.cxx
+++ b/Source/cmGlobalXCodeGenerator.cxx
@@ -3804,33 +3804,13 @@ void cmGlobalXCodeGenerator::GetDocumentation(cmDocumentationEntry& entry)
 //----------------------------------------------------------------------------
 std::string cmGlobalXCodeGenerator::ConvertToRelativeForMake(const char* p)
 {
-  if ( !this->CurrentMakefile->IsOn("CMAKE_USE_RELATIVE_PATHS") )
-    {
-    return cmSystemTools::ConvertToOutputPath(p);
-    }
-  else
-    {
-    std::string ret =
-      this->CurrentLocalGenerator->
-        ConvertToRelativePath(this->CurrentOutputDirectoryComponents, p);
-    return cmSystemTools::ConvertToOutputPath(ret.c_str());
-    }
+  return cmSystemTools::ConvertToOutputPath(p);
 }
 
 //----------------------------------------------------------------------------
 std::string cmGlobalXCodeGenerator::ConvertToRelativeForXCode(const char* p)
 {
-  if ( !this->CurrentMakefile->IsOn("CMAKE_USE_RELATIVE_PATHS") )
-    {
-    return cmSystemTools::ConvertToOutputPath(p);
-    }
-  else
-    {
-    std::string ret =
-      this->CurrentLocalGenerator->
-        ConvertToRelativePath(this->ProjectOutputDirectoryComponents, p);
-    return cmSystemTools::ConvertToOutputPath(ret.c_str());
-    }
+  return cmSystemTools::ConvertToOutputPath(p);
 }
 
 //----------------------------------------------------------------------------
diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx
index eb6b871..84461b1 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->UseRelativePaths = false;
   this->Configured = false;
   this->EmitUniversalBinaryFlags = true;
   this->BackwardsCompatibility = 0;
@@ -137,10 +136,6 @@ void cmLocalGenerator::Configure()
 
   this->Makefile->AddCMakeDependFilesFromUser();
 
-  // Check whether relative paths should be used for optionally
-  // relative paths.
-  this->UseRelativePaths = this->Makefile->IsOn("CMAKE_USE_RELATIVE_PATHS");
-
   this->ComputeObjectMaxPath();
 
   this->Configured = true;
@@ -2705,7 +2700,7 @@ std::string cmLocalGenerator::Convert(const std::string& source,
   // Convert the path to a relative path.
   std::string result = source;
 
-  if (!optional || this->UseRelativePaths)
+  if (!optional)
     {
     switch (relative)
       {
@@ -2786,7 +2781,7 @@ std::string cmLocalGenerator::Convert(RelativeRoot remote,
   // The relative root must have a path (i.e. not FULL or NONE)
   assert(remotePath != 0);
 
-  if(!local.empty() && (!optional || this->UseRelativePaths))
+  if(!local.empty() && !optional)
     {
     std::vector<std::string> components;
     cmSystemTools::SplitPath(local, components);
diff --git a/Source/cmLocalGenerator.h b/Source/cmLocalGenerator.h
index 32b17f5..03fe9ba 100644
--- a/Source/cmLocalGenerator.h
+++ b/Source/cmLocalGenerator.h
@@ -127,8 +127,7 @@ public:
   const char* GetRelativeRootPath(RelativeRoot relroot);
 
   /**
-   * Convert the given path to an output path that is optionally
-   * relative based on the cache option CMAKE_USE_RELATIVE_PATHS.  The
+   * Convert the given path to an output path.  The
    * remote path must use forward slashes and not already be escaped
    * or quoted.
    */
@@ -460,7 +459,6 @@ protected:
   std::set<cmTarget const*> WarnCMP0063;
 
   bool LinkScriptShell;
-  bool UseRelativePaths;
   bool Configured;
   bool EmitUniversalBinaryFlags;
 
diff --git a/Source/cmMakefileTargetGenerator.cxx b/Source/cmMakefileTargetGenerator.cxx
index 7b88bc7..d422e28 100644
--- a/Source/cmMakefileTargetGenerator.cxx
+++ b/Source/cmMakefileTargetGenerator.cxx
@@ -614,13 +614,7 @@ cmMakefileTargetGenerator
     }
 
   // Get the output paths for source and object files.
-  std::string sourceFile = source.GetFullPath();
-  if(this->LocalGenerator->UseRelativePaths)
-    {
-    sourceFile = this->Convert(sourceFile,
-                               cmLocalGenerator::START_OUTPUT);
-    }
-  sourceFile = this->Convert(sourceFile,
+  std::string sourceFile = this->Convert(source.GetFullPath(),
                              cmLocalGenerator::NONE,
                              cmLocalGenerator::SHELL);
 
diff --git a/Source/cmake.cxx b/Source/cmake.cxx
index 23803ef..e3fec5f 100644
--- a/Source/cmake.cxx
+++ b/Source/cmake.cxx
@@ -1437,20 +1437,6 @@ int cmake::ActualConfigure()
          cmState::PATH);
       }
     }
-  if(!this->State
-          ->GetInitializedCacheValue("CMAKE_USE_RELATIVE_PATHS"))
-    {
-    this->State->AddCacheEntry
-      ("CMAKE_USE_RELATIVE_PATHS", "OFF",
-       "If true, cmake will use relative paths in makefiles and projects.",
-       cmState::BOOL);
-    if (!this->State->GetCacheEntryProperty("CMAKE_USE_RELATIVE_PATHS",
-                                                    "ADVANCED"))
-      {
-      this->State->SetCacheEntryProperty("CMAKE_USE_RELATIVE_PATHS",
-                                                 "ADVANCED", "1");
-      }
-    }
 
   if(cmSystemTools::GetFatalErrorOccured())
     {

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

Summary of changes:


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list