[Cmake-commits] CMake branch, next, updated. v3.2.1-1759-gb0c18ba

Stephen Kelly steveire at gmail.com
Sun Apr 12 14:11:33 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  b0c18ba6de66445ba3d416fc62e6dc924ad380cf (commit)
       via  11633c74f2c50beb7dfb13f652fccfd825296c4c (commit)
       via  d43cb8c314cac91d82fa6f14fc372bd98a59f064 (commit)
       via  3f17e61518cdea542c98b7ff7a4673b796f20d10 (commit)
       via  7f4f707f887e3995e5b181620e4748d91a9735c7 (commit)
       via  bdd2251b47a15372f2ff5e93d40ecc3ba332525e (commit)
       via  fa5209354b84e7e9afb05fa377080afa8d6b58d6 (commit)
       via  5a290149c1e7613eb6bfc6c0f20d4620f5ab2971 (commit)
       via  ac11b599f4ec4d753745ba47b921e10d3ae24703 (commit)
       via  57dd094eded03a94402b6eecf7027325bd7b5136 (commit)
       via  6deb43e6c836a61536c3d6e36ca16b51013e9134 (commit)
       via  ecdb1b3bba991c13f3f61c7b00a80b8dd97567b2 (commit)
       via  04b307b961a34c00f72d9031817ce4f918288701 (commit)
       via  0f1f324b0dd7147850f923ab266873bd8a4a4353 (commit)
       via  275185ac2b30b655b53100a129f5d7518ed943ad (commit)
       via  c57f086a81c487fa88c36a785865d27b81e3cb8d (commit)
       via  23368c9b83cd62724e94d345e3af940b3cda8762 (commit)
       via  14c70b8c580c519ca38bcd9ba5ca8fc9e7629068 (commit)
       via  6ed19e615bada326c38a2b27d9378959503094ae (commit)
       via  ade20b433b2ce1cf176bc727a8ed9c47a5f6537e (commit)
       via  6fb306ea3bbe04b8e4dde8f13eec3e6bdfe35086 (commit)
       via  7450a2c6ed601dc94f2de410661065554ff8ce12 (commit)
       via  8c13d7709bb2a254e5927d3df1346d8264ba1bd5 (commit)
       via  55ecd818f6bf70590d61584a87aae7bba992e26d (commit)
       via  18b58b618ccfb3b3fc56935b64a8fa2139b8398a (commit)
      from  be2570d2726ced4c5f62f63d098a5c363afd9dd2 (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=b0c18ba6de66445ba3d416fc62e6dc924ad380cf
commit b0c18ba6de66445ba3d416fc62e6dc924ad380cf
Merge: be2570d 11633c7
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sun Apr 12 14:11:30 2015 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Sun Apr 12 14:11:30 2015 -0400

    Merge topic 'cmake-cleanups' into next
    
    11633c74 cmake: Remove confusing duplication.
    d43cb8c3 cmMakefile: Remove unused method.
    3f17e615 cmMakefile: Remove bad comment.
    7f4f707f cmMakefile: Internalize setting of CMakeInstance on Properties.
    bdd2251b cmMakefile: Out-of-line Home directory accessors.
    fa520935 cmake: Out-of-line Home and Start directory methods.
    5a290149 cmake: Fix variable name bugs.
    ac11b599 cmake: Simplify command clean up loop.
    57dd094e Use vector, not list for cmCommand storage.
    6deb43e6 Remove some files which do not need to be in BootstrapCommands.
    ecdb1b3b Add some missing includes.
    04b307b9 cmake: Simplify CommandExists method.
    0f1f324b cmake: Rename oddly named variables.
    275185ac cmake: Constify GetCommand method.
    c57f086a cmake: Don't lower-case a string needlessly.
    23368c9b cmake: Use make_pair instead of Foo::value_type.
    ...

diff --cc Source/cmake.h
index c8d46b6,87b771d..e80cc1c
--- a/Source/cmake.h
+++ b/Source/cmake.h
@@@ -477,15 -447,9 +452,14 @@@ private
    bool DebugTryCompile;
    cmFileTimeComparison* FileComparison;
    std::string GraphVizFile;
-   std::vector<std::string> DebugConfigs;
    InstalledFilesMap InstalledFiles;
  
 +  cmState* State;
 +
    void UpdateConversionPathTable();
 +
 +  // Print a list of valid generators to stderr.
 +  void PrintGeneratorList();
  };
  
  #define CMAKE_STANDARD_OPTIONS_TABLE \

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=11633c74f2c50beb7dfb13f652fccfd825296c4c
commit 11633c74f2c50beb7dfb13f652fccfd825296c4c
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sun Apr 12 19:22:09 2015 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Sun Apr 12 20:10:52 2015 +0200

    cmake: Remove confusing duplication.

diff --git a/Source/cmake.cxx b/Source/cmake.cxx
index 2efd080..a347072 100644
--- a/Source/cmake.cxx
+++ b/Source/cmake.cxx
@@ -832,12 +832,8 @@ void cmake::SetArgs(const std::vector<std::string>& args,
     {
     this->SetHomeOutputDirectory
       (cmSystemTools::GetCurrentWorkingDirectory());
-    this->SetStartOutputDirectory
-      (cmSystemTools::GetCurrentWorkingDirectory());
     this->SetHomeDirectory
       (cmSystemTools::GetCurrentWorkingDirectory());
-    this->SetStartDirectory
-      (cmSystemTools::GetCurrentWorkingDirectory());
     }
 
   this->SetStartDirectory(this->GetHomeDirectory());

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d43cb8c314cac91d82fa6f14fc372bd98a59f064
commit d43cb8c314cac91d82fa6f14fc372bd98a59f064
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sun Apr 12 18:34:12 2015 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Sun Apr 12 20:10:52 2015 +0200

    cmMakefile: Remove unused method.

diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index ec0a165..35fdd0c 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -1676,33 +1676,6 @@ void cmMakefile::ConfigureSubDirectory(cmLocalGenerator *lg2)
     }
 }
 
-void cmMakefile::AddSubDirectory(const std::string& sub,
-                                 bool excludeFromAll)
-{
-  // the source path must be made full if it isn't already
-  std::string srcPath = sub;
-  if (!cmSystemTools::FileIsFullPath(srcPath.c_str()))
-    {
-    srcPath = this->GetCurrentDirectory();
-    srcPath += "/";
-    srcPath += sub;
-    }
-
-  // binary path must be made full if it isn't already
-  std::string binPath = sub;
-  if (!cmSystemTools::FileIsFullPath(binPath.c_str()))
-    {
-    binPath = this->GetCurrentOutputDirectory();
-    binPath += "/";
-    binPath += sub;
-    }
-
-
-  this->AddSubDirectory(srcPath, binPath,
-                        excludeFromAll, false);
-}
-
-
 void cmMakefile::AddSubDirectory(const std::string& srcPath,
                                  const std::string& binPath,
                                  bool excludeFromAll,
diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h
index 823acb1..b78f921 100644
--- a/Source/cmMakefile.h
+++ b/Source/cmMakefile.h
@@ -281,7 +281,6 @@ public:
   /**
    * Add a subdirectory to the build.
    */
-  void AddSubDirectory(const std::string&, bool excludeFromAll=false);
   void AddSubDirectory(const std::string& fullSrcDir,
                        const std::string& fullBinDir,
                        bool excludeFromAll,

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=3f17e61518cdea542c98b7ff7a4673b796f20d10
commit 3f17e61518cdea542c98b7ff7a4673b796f20d10
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sun Apr 12 18:47:24 2015 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Sun Apr 12 20:10:52 2015 +0200

    cmMakefile: Remove bad comment.

diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index 35be1b7..ec0a165 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -1658,7 +1658,6 @@ void cmMakefile::InitializeFromParent()
 
 void cmMakefile::ConfigureSubDirectory(cmLocalGenerator *lg2)
 {
-  // copy our variables from the child makefile
   lg2->GetMakefile()->InitializeFromParent();
   lg2->GetMakefile()->MakeStartDirectoriesCurrent();
   if (this->GetCMakeInstance()->GetDebugOutput())

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=7f4f707f887e3995e5b181620e4748d91a9735c7
commit 7f4f707f887e3995e5b181620e4748d91a9735c7
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sun Apr 12 20:10:48 2015 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Sun Apr 12 20:10:48 2015 +0200

    cmMakefile: Internalize setting of CMakeInstance on Properties.

diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx
index e1998e4..c143bce 100644
--- a/Source/cmLocalGenerator.cxx
+++ b/Source/cmLocalGenerator.cxx
@@ -252,7 +252,6 @@ void cmLocalGenerator::SetGlobalGenerator(cmGlobalGenerator *gg)
   this->Makefile->SetLocalGenerator(this);
 
   // setup the home directories
-  this->Makefile->GetProperties().SetCMakeInstance(gg->GetCMakeInstance());
   this->Makefile->SetHomeDirectory(
     gg->GetCMakeInstance()->GetHomeDirectory());
   this->Makefile->SetHomeOutputDirectory(
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index dea9e46..35be1b7 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -741,6 +741,7 @@ void cmMakefile::SetLocalGenerator(cmLocalGenerator* lg)
   this->AddSourceGroup("Object Files", "\\.(lo|o|obj)$");
 #endif
 
+  this->Properties.SetCMakeInstance(this->GetCMakeInstance());
   this->WarnUnused = this->GetCMakeInstance()->GetWarnUnused();
   this->CheckSystemVars = this->GetCMakeInstance()->GetCheckSystemVars();
 }

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=bdd2251b47a15372f2ff5e93d40ecc3ba332525e
commit bdd2251b47a15372f2ff5e93d40ecc3ba332525e
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sun Apr 12 20:10:45 2015 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Sun Apr 12 20:10:45 2015 +0200

    cmMakefile: Out-of-line Home directory accessors.

diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index 34b4621..dea9e46 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -3461,6 +3461,11 @@ cmMakefile::LexicalPushPop::~LexicalPushPop()
   this->Makefile->PopFunctionBlockerBarrier(this->ReportError);
 }
 
+const char* cmMakefile::GetHomeDirectory() const
+{
+  return this->cmHomeDirectory.c_str();
+}
+
 void cmMakefile::SetHomeDirectory(const std::string& dir)
 {
   this->cmHomeDirectory = dir;
@@ -3472,6 +3477,11 @@ void cmMakefile::SetHomeDirectory(const std::string& dir)
     }
 }
 
+const char* cmMakefile::GetHomeOutputDirectory() const
+{
+  return this->HomeOutputDirectory.c_str();
+}
+
 void cmMakefile::SetHomeOutputDirectory(const std::string& lib)
 {
   this->HomeOutputDirectory = lib;
diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h
index 5209891..823acb1 100644
--- a/Source/cmMakefile.h
+++ b/Source/cmMakefile.h
@@ -438,15 +438,9 @@ public:
    * and going up until it reaches the HomeDirectory.
    */
   void SetHomeDirectory(const std::string& dir);
-  const char* GetHomeDirectory() const
-    {
-      return this->cmHomeDirectory.c_str();
-    }
+  const char* GetHomeDirectory() const;
   void SetHomeOutputDirectory(const std::string& lib);
-  const char* GetHomeOutputDirectory() const
-    {
-      return this->HomeOutputDirectory.c_str();
-    }
+  const char* GetHomeOutputDirectory() const;
   //@}
 
   /**

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=fa5209354b84e7e9afb05fa377080afa8d6b58d6
commit fa5209354b84e7e9afb05fa377080afa8d6b58d6
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sun Apr 12 20:10:40 2015 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Sun Apr 12 20:10:40 2015 +0200

    cmake: Out-of-line Home and Start directory methods.

diff --git a/Source/cmake.cxx b/Source/cmake.cxx
index 92c320c..2efd080 100644
--- a/Source/cmake.cxx
+++ b/Source/cmake.cxx
@@ -1101,12 +1101,44 @@ void cmake::SetHomeDirectory(const std::string& dir)
   cmSystemTools::ConvertToUnixSlashes(this->cmHomeDirectory);
 }
 
+const char* cmake::GetHomeDirectory() const
+{
+  return this->cmHomeDirectory.c_str();
+}
+
 void cmake::SetHomeOutputDirectory(const std::string& dir)
 {
   this->HomeOutputDirectory = dir;
   cmSystemTools::ConvertToUnixSlashes(this->HomeOutputDirectory);
 }
 
+const char* cmake::GetHomeOutputDirectory() const
+{
+  return this->HomeOutputDirectory.c_str();
+}
+
+const char* cmake::GetStartDirectory() const
+{
+  return this->cmStartDirectory.c_str();
+}
+
+void cmake::SetStartDirectory(const std::string& dir)
+{
+  this->cmStartDirectory = dir;
+  cmSystemTools::ConvertToUnixSlashes(this->cmStartDirectory);
+}
+
+const char* cmake::GetStartOutputDirectory() const
+{
+  return this->StartOutputDirectory.c_str();
+}
+
+void cmake::SetStartOutputDirectory(const std::string& dir)
+{
+  this->StartOutputDirectory = dir;
+  cmSystemTools::ConvertToUnixSlashes(this->StartOutputDirectory);
+}
+
 void cmake::SetGlobalGenerator(cmGlobalGenerator *gg)
 {
   if(!gg)
diff --git a/Source/cmake.h b/Source/cmake.h
index 26ee8fe..87b771d 100644
--- a/Source/cmake.h
+++ b/Source/cmake.h
@@ -113,15 +113,9 @@ class cmake
    * and going up until it reaches the HomeDirectory.
    */
   void SetHomeDirectory(const std::string& dir);
-  const char* GetHomeDirectory() const
-    {
-    return this->cmHomeDirectory.c_str();
-    }
+  const char* GetHomeDirectory() const;
   void SetHomeOutputDirectory(const std::string& dir);
-  const char* GetHomeOutputDirectory() const
-    {
-    return this->HomeOutputDirectory.c_str();
-    }
+  const char* GetHomeOutputDirectory() const;
   //@}
 
   //@{
@@ -132,24 +126,10 @@ class cmake
    * recursing up the tree starting at the StartDirectory and going up until
    * it reaches the HomeDirectory.
    */
-  void SetStartDirectory(const std::string& dir)
-    {
-      this->cmStartDirectory = dir;
-      cmSystemTools::ConvertToUnixSlashes(this->cmStartDirectory);
-    }
-  const char* GetStartDirectory() const
-    {
-      return this->cmStartDirectory.c_str();
-    }
-  void SetStartOutputDirectory(const std::string& dir)
-    {
-      this->StartOutputDirectory = dir;
-      cmSystemTools::ConvertToUnixSlashes(this->StartOutputDirectory);
-    }
-  const char* GetStartOutputDirectory() const
-    {
-      return this->StartOutputDirectory.c_str();
-    }
+  void SetStartDirectory(const std::string& dir);
+  const char* GetStartDirectory() const;
+  void SetStartOutputDirectory(const std::string& dir);
+  const char* GetStartOutputDirectory() const;
   //@}
 
   /**

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5a290149c1e7613eb6bfc6c0f20d4620f5ab2971
commit 5a290149c1e7613eb6bfc6c0f20d4620f5ab2971
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sun Apr 12 19:32:48 2015 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Sun Apr 12 20:09:48 2015 +0200

    cmake: Fix variable name bugs.

diff --git a/Source/cmake.cxx b/Source/cmake.cxx
index e61cc63..92c320c 100644
--- a/Source/cmake.cxx
+++ b/Source/cmake.cxx
@@ -1101,9 +1101,9 @@ void cmake::SetHomeDirectory(const std::string& dir)
   cmSystemTools::ConvertToUnixSlashes(this->cmHomeDirectory);
 }
 
-void cmake::SetHomeOutputDirectory(const std::string& lib)
+void cmake::SetHomeOutputDirectory(const std::string& dir)
 {
-  this->HomeOutputDirectory = lib;
+  this->HomeOutputDirectory = dir;
   cmSystemTools::ConvertToUnixSlashes(this->HomeOutputDirectory);
 }
 
diff --git a/Source/cmake.h b/Source/cmake.h
index c436c77..26ee8fe 100644
--- a/Source/cmake.h
+++ b/Source/cmake.h
@@ -117,7 +117,7 @@ class cmake
     {
     return this->cmHomeDirectory.c_str();
     }
-  void SetHomeOutputDirectory(const std::string& lib);
+  void SetHomeOutputDirectory(const std::string& dir);
   const char* GetHomeOutputDirectory() const
     {
     return this->HomeOutputDirectory.c_str();
@@ -141,9 +141,9 @@ class cmake
     {
       return this->cmStartDirectory.c_str();
     }
-  void SetStartOutputDirectory(const std::string& lib)
+  void SetStartOutputDirectory(const std::string& dir)
     {
-      this->StartOutputDirectory = lib;
+      this->StartOutputDirectory = dir;
       cmSystemTools::ConvertToUnixSlashes(this->StartOutputDirectory);
     }
   const char* GetStartOutputDirectory() const

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ac11b599f4ec4d753745ba47b921e10d3ae24703
commit ac11b599f4ec4d753745ba47b921e10d3ae24703
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sun Apr 12 10:48:17 2015 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Sun Apr 12 20:09:47 2015 +0200

    cmake: Simplify command clean up loop.

diff --git a/Source/cmake.cxx b/Source/cmake.cxx
index 1d067a5..e61cc63 100644
--- a/Source/cmake.cxx
+++ b/Source/cmake.cxx
@@ -197,27 +197,16 @@ void cmake::InitializeProperties()
 void cmake::CleanupCommandsAndMacros()
 {
   this->InitializeProperties();
-  std::vector<cmCommand*> commands;
   for(RegisteredCommandsMap::iterator j = this->Commands.begin();
       j != this->Commands.end(); ++j)
     {
-    if ( !j->second->IsA("cmMacroHelperCommand") &&
-         !j->second->IsA("cmFunctionHelperCommand"))
-      {
-      commands.push_back(j->second);
-      }
-    else
+    if (j->second->IsA("cmMacroHelperCommand") ||
+        j->second->IsA("cmFunctionHelperCommand"))
       {
       delete j->second;
+      this->Commands.erase(j);
       }
     }
-  this->Commands.clear();
-  std::vector<cmCommand*>::iterator it;
-  for ( it = commands.begin(); it != commands.end();
-    ++ it )
-    {
-    this->Commands[cmSystemTools::LowerCase((*it)->GetName())] = *it;
-    }
 }
 
 bool cmake::CommandExists(const std::string& name) const

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=57dd094eded03a94402b6eecf7027325bd7b5136
commit 57dd094eded03a94402b6eecf7027325bd7b5136
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sun Apr 12 02:44:41 2015 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Sun Apr 12 20:09:47 2015 +0200

    Use vector, not list for cmCommand storage.

diff --git a/Source/cmBootstrapCommands1.cxx b/Source/cmBootstrapCommands1.cxx
index 1b0abf4..1184514 100644
--- a/Source/cmBootstrapCommands1.cxx
+++ b/Source/cmBootstrapCommands1.cxx
@@ -55,7 +55,7 @@
 #include "cmPathLabel.cxx"
 #include "cmSearchPath.cxx"
 
-void GetBootstrapCommands1(std::list<cmCommand*>& commands)
+void GetBootstrapCommands1(std::vector<cmCommand*>& commands)
 {
   commands.push_back(new cmAddCustomCommandCommand);
   commands.push_back(new cmAddCustomTargetCommand);
diff --git a/Source/cmBootstrapCommands2.cxx b/Source/cmBootstrapCommands2.cxx
index e292a3a..e522d8c 100644
--- a/Source/cmBootstrapCommands2.cxx
+++ b/Source/cmBootstrapCommands2.cxx
@@ -59,7 +59,7 @@
 #include "cmUnsetCommand.cxx"
 #include "cmWhileCommand.cxx"
 
-void GetBootstrapCommands2(std::list<cmCommand*>& commands)
+void GetBootstrapCommands2(std::vector<cmCommand*>& commands)
 {
   commands.push_back(new cmGetCMakePropertyCommand);
   commands.push_back(new cmGetDirectoryPropertyCommand);
diff --git a/Source/cmCommands.cxx.in b/Source/cmCommands.cxx.in
index f0745d7..e23bbd1 100644
--- a/Source/cmCommands.cxx.in
+++ b/Source/cmCommands.cxx.in
@@ -13,7 +13,7 @@
 
 @COMMAND_INCLUDES@
 
-void GetPredefinedCommands(std::list<cmCommand*>& commands)
+void GetPredefinedCommands(std::vector<cmCommand*>& commands)
 {
 @NEW_COMMANDS@
 }
diff --git a/Source/cmCommands.h b/Source/cmCommands.h
index e902853..7a94423 100644
--- a/Source/cmCommands.h
+++ b/Source/cmCommands.h
@@ -13,7 +13,7 @@
 #define cmCommands_h
 #include "cmStandardIncludes.h"
 
-#include <list>
+#include <vector>
 
 class cmCommand;
 /**
@@ -23,9 +23,9 @@ class cmCommand;
  * It is up to the caller to delete the commands created by this
  * call.
  */
-void GetBootstrapCommands1(std::list<cmCommand*>& commands);
-void GetBootstrapCommands2(std::list<cmCommand*>& commands);
-void GetPredefinedCommands(std::list<cmCommand*>& commands);
+void GetBootstrapCommands1(std::vector<cmCommand*>& commands);
+void GetBootstrapCommands2(std::vector<cmCommand*>& commands);
+void GetPredefinedCommands(std::vector<cmCommand*>& commands);
 
 
 #endif
diff --git a/Source/cmCommandsForBootstrap.cxx b/Source/cmCommandsForBootstrap.cxx
index 15b664e..5f397a1 100644
--- a/Source/cmCommandsForBootstrap.cxx
+++ b/Source/cmCommandsForBootstrap.cxx
@@ -11,6 +11,6 @@
 ============================================================================*/
 #include "cmCommands.h"
 
-void GetPredefinedCommands(std::list<cmCommand*>&)
+void GetPredefinedCommands(std::vector<cmCommand*>&)
 {
 }
diff --git a/Source/cmake.cxx b/Source/cmake.cxx
index f624214..1d067a5 100644
--- a/Source/cmake.cxx
+++ b/Source/cmake.cxx
@@ -1804,11 +1804,11 @@ const char* cmake::GetCacheDefinition(const std::string& name) const
 
 void cmake::AddDefaultCommands()
 {
-  std::list<cmCommand*> commands;
+  std::vector<cmCommand*> commands;
   GetBootstrapCommands1(commands);
   GetBootstrapCommands2(commands);
   GetPredefinedCommands(commands);
-  for(std::list<cmCommand*>::iterator i = commands.begin();
+  for(std::vector<cmCommand*>::iterator i = commands.begin();
       i != commands.end(); ++i)
     {
     this->AddCommand(*i);

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=6deb43e6c836a61536c3d6e36ca16b51013e9134
commit 6deb43e6c836a61536c3d6e36ca16b51013e9134
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sun Apr 12 20:09:31 2015 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Sun Apr 12 20:09:31 2015 +0200

    Remove some files which do not need to be in BootstrapCommands.

diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt
index 04f6a81..868e8b9 100644
--- a/Source/CMakeLists.txt
+++ b/Source/CMakeLists.txt
@@ -219,6 +219,8 @@ set(SRCS
   cmExportSet.cxx
   cmExportSetMap.h
   cmExportSetMap.cxx
+  cmExternalMakefileProjectGenerator.cxx
+  cmExternalMakefileProjectGenerator.h
   cmExtraCodeBlocksGenerator.cxx
   cmExtraCodeBlocksGenerator.h
   cmExtraCodeLiteGenerator.cxx
@@ -244,6 +246,8 @@ set(SRCS
   cmGeneratorExpressionContext.h
   cmGeneratorExpressionDAGChecker.cxx
   cmGeneratorExpressionDAGChecker.h
+  cmGeneratorExpressionEvaluationFile.cxx
+  cmGeneratorExpressionEvaluationFile.h
   cmGeneratorExpressionEvaluator.cxx
   cmGeneratorExpressionEvaluator.h
   cmGeneratorExpressionLexer.cxx
diff --git a/Source/cmBootstrapCommands1.cxx b/Source/cmBootstrapCommands1.cxx
index 4274d85..1b0abf4 100644
--- a/Source/cmBootstrapCommands1.cxx
+++ b/Source/cmBootstrapCommands1.cxx
@@ -42,7 +42,6 @@
 #include "cmEndWhileCommand.cxx"
 #include "cmExecProgramCommand.cxx"
 #include "cmExecuteProcessCommand.cxx"
-#include "cmExternalMakefileProjectGenerator.cxx"
 #include "cmFindBase.cxx"
 #include "cmFindCommon.cxx"
 #include "cmFileCommand.cxx"
diff --git a/Source/cmBootstrapCommands2.cxx b/Source/cmBootstrapCommands2.cxx
index 5675295..e292a3a 100644
--- a/Source/cmBootstrapCommands2.cxx
+++ b/Source/cmBootstrapCommands2.cxx
@@ -16,7 +16,6 @@
 #include "cmCommands.h"
 #include "cmConditionEvaluator.cxx"
 #include "cmExpandedCommandArgument.cxx"
-#include "cmGeneratorExpressionEvaluationFile.cxx"
 #include "cmGetCMakePropertyCommand.cxx"
 #include "cmGetDirectoryPropertyCommand.cxx"
 #include "cmGetFilenameComponentCommand.cxx"
diff --git a/bootstrap b/bootstrap
index 4239802..c7c6613 100755
--- a/bootstrap
+++ b/bootstrap
@@ -264,7 +264,8 @@ CMAKE_CXX_SOURCES="\
   cmExportTryCompileFileGenerator \
   cmExportSet \
   cmExportSetMap \
-  cmInstallDirectoryGenerator \
+  cmExternalMakefileProjectGenerator \
+  cmGeneratorExpressionEvaluationFile \
   cmGeneratedFileStream \
   cmGeneratorTarget \
   cmGeneratorExpressionContext \
@@ -275,6 +276,7 @@ CMAKE_CXX_SOURCES="\
   cmGeneratorExpressionParser \
   cmGeneratorExpression \
   cmGlobalGenerator \
+  cmInstallDirectoryGenerator \
   cmLocalGenerator \
   cmInstalledFile \
   cmInstallGenerator \

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ecdb1b3bba991c13f3f61c7b00a80b8dd97567b2
commit ecdb1b3bba991c13f3f61c7b00a80b8dd97567b2
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sun Apr 12 20:09:25 2015 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Sun Apr 12 20:09:25 2015 +0200

    Add some missing includes.

diff --git a/Source/cmFileCommand.cxx b/Source/cmFileCommand.cxx
index 93e3ac4..6ac0def 100644
--- a/Source/cmFileCommand.cxx
+++ b/Source/cmFileCommand.cxx
@@ -15,6 +15,8 @@
 #include "cmHexFileConverter.h"
 #include "cmInstallType.h"
 #include "cmFileTimeComparison.h"
+#include "cmLocalGenerator.h"
+#include "cmGlobalGenerator.h"
 #include "cmCryptoHash.h"
 #include "cmAlgorithms.h"
 

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=04b307b961a34c00f72d9031817ce4f918288701
commit 04b307b961a34c00f72d9031817ce4f918288701
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sat Apr 11 12:33:27 2015 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Sun Apr 12 20:08:49 2015 +0200

    cmake: Simplify CommandExists method.

diff --git a/Source/cmake.cxx b/Source/cmake.cxx
index f22989d..f624214 100644
--- a/Source/cmake.cxx
+++ b/Source/cmake.cxx
@@ -222,8 +222,7 @@ void cmake::CleanupCommandsAndMacros()
 
 bool cmake::CommandExists(const std::string& name) const
 {
-  std::string sName = cmSystemTools::LowerCase(name);
-  return (this->Commands.find(sName) != this->Commands.end());
+  return this->GetCommand(name) ? true : false;
 }
 
 cmCommand *cmake::GetCommand(const std::string& name) const

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=0f1f324b0dd7147850f923ab266873bd8a4a4353
commit 0f1f324b0dd7147850f923ab266873bd8a4a4353
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sat Apr 11 12:45:12 2015 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Sun Apr 12 20:08:49 2015 +0200

    cmake: Rename oddly named variables.

diff --git a/Source/cmake.cxx b/Source/cmake.cxx
index b27fefa..f22989d 100644
--- a/Source/cmake.cxx
+++ b/Source/cmake.cxx
@@ -228,14 +228,14 @@ bool cmake::CommandExists(const std::string& name) const
 
 cmCommand *cmake::GetCommand(const std::string& name) const
 {
-  cmCommand* rm = 0;
+  cmCommand* command = 0;
   std::string sName = cmSystemTools::LowerCase(name);
   RegisteredCommandsMap::const_iterator pos = this->Commands.find(sName);
   if (pos != this->Commands.end())
     {
-    rm = (*pos).second;
+    command = (*pos).second;
     }
-  return rm;
+  return command;
 }
 
 void cmake::RenameCommand(const std::string& oldName,
@@ -273,9 +273,9 @@ void cmake::RemoveCommand(const std::string& name)
     }
 }
 
-void cmake::AddCommand(cmCommand* wg)
+void cmake::AddCommand(cmCommand* command)
 {
-  std::string name = cmSystemTools::LowerCase(wg->GetName());
+  std::string name = cmSystemTools::LowerCase(command->GetName());
   // if the command already exists, free the old one
   RegisteredCommandsMap::iterator pos = this->Commands.find(name);
   if (pos != this->Commands.end())
@@ -283,7 +283,7 @@ void cmake::AddCommand(cmCommand* wg)
     delete pos->second;
     this->Commands.erase(pos);
     }
-  this->Commands.insert(std::make_pair(name, wg));
+  this->Commands.insert(std::make_pair(name, command));
 }
 
 

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=275185ac2b30b655b53100a129f5d7518ed943ad
commit 275185ac2b30b655b53100a129f5d7518ed943ad
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sat Apr 11 12:44:18 2015 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Sun Apr 12 20:08:49 2015 +0200

    cmake: Constify GetCommand method.

diff --git a/Source/cmake.cxx b/Source/cmake.cxx
index 8868ef6..b27fefa 100644
--- a/Source/cmake.cxx
+++ b/Source/cmake.cxx
@@ -226,11 +226,11 @@ bool cmake::CommandExists(const std::string& name) const
   return (this->Commands.find(sName) != this->Commands.end());
 }
 
-cmCommand *cmake::GetCommand(const std::string& name)
+cmCommand *cmake::GetCommand(const std::string& name) const
 {
   cmCommand* rm = 0;
   std::string sName = cmSystemTools::LowerCase(name);
-  RegisteredCommandsMap::iterator pos = this->Commands.find(sName);
+  RegisteredCommandsMap::const_iterator pos = this->Commands.find(sName);
   if (pos != this->Commands.end())
     {
     rm = (*pos).second;
diff --git a/Source/cmake.h b/Source/cmake.h
index a9f791d..c436c77 100644
--- a/Source/cmake.h
+++ b/Source/cmake.h
@@ -247,7 +247,7 @@ class cmake
   /**
    * Get a command by its name
    */
-  cmCommand *GetCommand(const std::string& name);
+  cmCommand *GetCommand(const std::string& name) const;
 
   /** Check if a command exists. */
   bool CommandExists(const std::string& name) const;

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c57f086a81c487fa88c36a785865d27b81e3cb8d
commit c57f086a81c487fa88c36a785865d27b81e3cb8d
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sat Apr 11 12:36:58 2015 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Sun Apr 12 20:08:48 2015 +0200

    cmake: Don't lower-case a string needlessly.

diff --git a/Source/cmake.cxx b/Source/cmake.cxx
index 8e09485..8868ef6 100644
--- a/Source/cmake.cxx
+++ b/Source/cmake.cxx
@@ -243,12 +243,12 @@ void cmake::RenameCommand(const std::string& oldName,
 {
   // if the command already exists, free the old one
   std::string sOldName = cmSystemTools::LowerCase(oldName);
-  std::string sNewName = cmSystemTools::LowerCase(newName);
   RegisteredCommandsMap::iterator pos = this->Commands.find(sOldName);
   if ( pos == this->Commands.end() )
     {
     return;
     }
+  std::string sNewName = cmSystemTools::LowerCase(newName);
   cmCommand* cmd = pos->second;
 
   pos = this->Commands.find(sNewName);

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=23368c9b83cd62724e94d345e3af940b3cda8762
commit 23368c9b83cd62724e94d345e3af940b3cda8762
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sat Apr 11 12:32:00 2015 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Sun Apr 12 20:08:48 2015 +0200

    cmake: Use make_pair instead of Foo::value_type.
    
    It works with all supported compilers.

diff --git a/Source/cmake.cxx b/Source/cmake.cxx
index 0cbb299..8e09485 100644
--- a/Source/cmake.cxx
+++ b/Source/cmake.cxx
@@ -257,7 +257,7 @@ void cmake::RenameCommand(const std::string& oldName,
     delete pos->second;
     this->Commands.erase(pos);
     }
-  this->Commands.insert(RegisteredCommandsMap::value_type(sNewName, cmd));
+  this->Commands.insert(std::make_pair(sNewName, cmd));
   pos = this->Commands.find(sOldName);
   this->Commands.erase(pos);
 }
@@ -283,7 +283,7 @@ void cmake::AddCommand(cmCommand* wg)
     delete pos->second;
     this->Commands.erase(pos);
     }
-  this->Commands.insert( RegisteredCommandsMap::value_type(name, wg));
+  this->Commands.insert(std::make_pair(name, wg));
 }
 
 

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=14c70b8c580c519ca38bcd9ba5ca8fc9e7629068
commit 14c70b8c580c519ca38bcd9ba5ca8fc9e7629068
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sat Apr 11 12:12:14 2015 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Sun Apr 12 20:08:48 2015 +0200

    cmake: out-of-line try compile state methods.

diff --git a/Source/cmake.cxx b/Source/cmake.cxx
index cf81ea4..0cbb299 100644
--- a/Source/cmake.cxx
+++ b/Source/cmake.cxx
@@ -1935,6 +1935,16 @@ void cmake::UpdateProgress(const char *msg, float prog)
     }
 }
 
+bool cmake::GetIsInTryCompile() const
+{
+  return this->InTryCompile;
+}
+
+void cmake::SetIsInTryCompile(bool b)
+{
+  this->InTryCompile = b;
+}
+
 void cmake::GetGeneratorDocumentation(std::vector<cmDocumentationEntry>& v)
 {
   for(RegisteredGeneratorsVector::const_iterator i =
diff --git a/Source/cmake.h b/Source/cmake.h
index 0c3de65..a9f791d 100644
--- a/Source/cmake.h
+++ b/Source/cmake.h
@@ -257,10 +257,8 @@ class cmake
                bool directoriesSetBefore = false);
 
   ///! Is this cmake running as a result of a TRY_COMPILE command
-  bool GetIsInTryCompile() { return this->InTryCompile; }
-
-  ///! Is this cmake running as a result of a TRY_COMPILE command
-  void SetIsInTryCompile(bool i) { this->InTryCompile = i; }
+  bool GetIsInTryCompile() const;
+  void SetIsInTryCompile(bool b);
 
   ///! Parse command line arguments that might set cache values
   bool SetCacheArgs(const std::vector<std::string>&);

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=6ed19e615bada326c38a2b27d9378959503094ae
commit 6ed19e615bada326c38a2b27d9378959503094ae
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sat Apr 11 12:09:15 2015 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Sun Apr 12 20:08:47 2015 +0200

    cmake: Remove duplicate condition.

diff --git a/Source/cmake.cxx b/Source/cmake.cxx
index bef8904..cf81ea4 100644
--- a/Source/cmake.cxx
+++ b/Source/cmake.cxx
@@ -1530,11 +1530,7 @@ int cmake::ActualConfigure()
   if (!this->InTryCompile)
     {
     this->GlobalGenerator->ClearEnabledLanguages();
-    }
 
-  // Truncate log files
-  if (!this->InTryCompile)
-    {
     this->TruncateOutputLog("CMakeOutput.log");
     this->TruncateOutputLog("CMakeError.log");
     }

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ade20b433b2ce1cf176bc727a8ed9c47a5f6537e
commit ade20b433b2ce1cf176bc727a8ed9c47a5f6537e
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sat Apr 11 12:04:05 2015 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Sun Apr 12 20:08:47 2015 +0200

    cmake: Remove DebugConfigs member.
    
    It adds needless complexity to global property handling.

diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index 85e5165..745a84c 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -1157,7 +1157,7 @@ cmTarget::LinkLibraryType cmTarget::ComputeLinkType(
     }
 
   // Get the list of configurations considered to be DEBUG.
-  std::vector<std::string> const& debugConfigs =
+  std::vector<std::string> debugConfigs =
     this->Makefile->GetCMakeInstance()->GetDebugConfigs();
 
   // Check if any entry in the list matches this configuration.
@@ -1216,7 +1216,7 @@ std::string cmTarget::GetDebugGeneratorExpressions(const std::string &value,
     }
 
   // Get the list of configurations considered to be DEBUG.
-  std::vector<std::string> const& debugConfigs =
+  std::vector<std::string> debugConfigs =
                       this->Makefile->GetCMakeInstance()->GetDebugConfigs();
 
   std::string configString = "$<CONFIG:" + debugConfigs[0] + ">";
diff --git a/Source/cmTargetLinkLibrariesCommand.cxx b/Source/cmTargetLinkLibrariesCommand.cxx
index 75c94c5..9be7d46 100644
--- a/Source/cmTargetLinkLibrariesCommand.cxx
+++ b/Source/cmTargetLinkLibrariesCommand.cxx
@@ -467,7 +467,7 @@ cmTargetLinkLibrariesCommand::HandleLibrary(const std::string& lib,
     }
 
   // Get the list of configurations considered to be DEBUG.
-  std::vector<std::string> const& debugConfigs =
+  std::vector<std::string> debugConfigs =
     this->Makefile->GetCMakeInstance()->GetDebugConfigs();
   std::string prop;
 
diff --git a/Source/cmake.cxx b/Source/cmake.cxx
index d2331cb..bef8904 100644
--- a/Source/cmake.cxx
+++ b/Source/cmake.cxx
@@ -2283,24 +2283,12 @@ bool cmake::IsPropertyChained(const std::string& name,
 
 void cmake::SetProperty(const std::string& prop, const char* value)
 {
-  // Special hook to invalidate cached value.
-  if(prop == "DEBUG_CONFIGURATIONS")
-    {
-    this->DebugConfigs.clear();
-    }
-
   this->Properties.SetProperty(prop, value, cmProperty::GLOBAL);
 }
 
 void cmake::AppendProperty(const std::string& prop,
                            const char* value, bool asString)
 {
-  // Special hook to invalidate cached value.
-  if(prop == "DEBUG_CONFIGURATIONS")
-    {
-    this->DebugConfigs.clear();
-    }
-
   this->Properties.AppendProperty(prop, value, cmProperty::GLOBAL, asString);
 }
 
@@ -2758,27 +2746,24 @@ void cmake::IssueMessage(cmake::MessageType t, std::string const& text,
 }
 
 //----------------------------------------------------------------------------
-std::vector<std::string> const& cmake::GetDebugConfigs()
+std::vector<std::string> cmake::GetDebugConfigs()
 {
-  // Compute on-demand.
-  if(this->DebugConfigs.empty())
+  std::vector<std::string> configs;
+  if(const char* config_list = this->GetProperty("DEBUG_CONFIGURATIONS"))
     {
-    if(const char* config_list = this->GetProperty("DEBUG_CONFIGURATIONS"))
-      {
-      // Expand the specified list and convert to upper-case.
-      cmSystemTools::ExpandListArgument(config_list, this->DebugConfigs);
-      std::transform(this->DebugConfigs.begin(),
-                     this->DebugConfigs.end(),
-                     this->DebugConfigs.begin(),
-                     cmSystemTools::UpperCase);
-      }
-    // If no configurations were specified, use a default list.
-    if(this->DebugConfigs.empty())
-      {
-      this->DebugConfigs.push_back("DEBUG");
-      }
+    // Expand the specified list and convert to upper-case.
+    cmSystemTools::ExpandListArgument(config_list, configs);
+    std::transform(configs.begin(),
+                   configs.end(),
+                   configs.begin(),
+                   cmSystemTools::UpperCase);
+    }
+  // If no configurations were specified, use a default list.
+  if(configs.empty())
+    {
+    configs.push_back("DEBUG");
     }
-  return this->DebugConfigs;
+  return configs;
 }
 
 
diff --git a/Source/cmake.h b/Source/cmake.h
index d2d3a85..0c3de65 100644
--- a/Source/cmake.h
+++ b/Source/cmake.h
@@ -359,7 +359,7 @@ class cmake
 
   /** Get the list of configurations (in upper case) considered to be
       debugging configurations.*/
-  std::vector<std::string> const& GetDebugConfigs();
+  std::vector<std::string> GetDebugConfigs();
 
   void SetCMakeEditCommand(std::string const& s)
     { this->CMakeEditCommand = s; }
@@ -469,7 +469,6 @@ private:
   bool DebugTryCompile;
   cmFileTimeComparison* FileComparison;
   std::string GraphVizFile;
-  std::vector<std::string> DebugConfigs;
   InstalledFilesMap InstalledFiles;
 
   void UpdateConversionPathTable();

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=6fb306ea3bbe04b8e4dde8f13eec3e6bdfe35086
commit 6fb306ea3bbe04b8e4dde8f13eec3e6bdfe35086
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sat Apr 11 11:31:43 2015 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Sun Apr 12 20:08:46 2015 +0200

    Test expected value of DEBUG_CONFIGURATIONS global property.

diff --git a/Tests/RunCMake/get_property/DebugConfigurations-stderr.txt b/Tests/RunCMake/get_property/DebugConfigurations-stderr.txt
new file mode 100644
index 0000000..b295604
--- /dev/null
+++ b/Tests/RunCMake/get_property/DebugConfigurations-stderr.txt
@@ -0,0 +1,11 @@
+CONFIGS:
+IFACE1:\$<\$<CONFIG:DEBUG>:external1>
+CONFIGS:EXTRA
+IFACE1:\$<\$<CONFIG:DEBUG>:external1>
+IFACE1:\$<\$<CONFIG:DEBUG>:external1>;\$<\$<CONFIG:EXTRA>:external2>
+CONFIGS:NEW;CONFIGS
+IFACE1:\$<\$<CONFIG:DEBUG>:external1>;\$<\$<CONFIG:EXTRA>:external2>
+IFACE1:\$<\$<CONFIG:DEBUG>:external1>;\$<\$<CONFIG:EXTRA>:external2>;\$<\$<OR:\$<CONFIG:NEW>,\$<CONFIG:CONFIGS>>:external3>
+CONFIGS:NEW;CONFIGS;EXTRA
+IFACE1:\$<\$<CONFIG:DEBUG>:external1>;\$<\$<CONFIG:EXTRA>:external2>;\$<\$<OR:\$<CONFIG:NEW>,\$<CONFIG:CONFIGS>>:external3>
+IFACE1:\$<\$<CONFIG:DEBUG>:external1>;\$<\$<CONFIG:EXTRA>:external2>;\$<\$<OR:\$<CONFIG:NEW>,\$<CONFIG:CONFIGS>>:external3>;\$<\$<OR:\$<CONFIG:NEW>,\$<CONFIG:CONFIGS>,\$<CONFIG:EXTRA>>:external4>
diff --git a/Tests/RunCMake/get_property/DebugConfigurations.cmake b/Tests/RunCMake/get_property/DebugConfigurations.cmake
new file mode 100644
index 0000000..534beaf
--- /dev/null
+++ b/Tests/RunCMake/get_property/DebugConfigurations.cmake
@@ -0,0 +1,41 @@
+
+enable_language(CXX)
+
+get_property(configs GLOBAL PROPERTY DEBUG_CONFIGURATIONS)
+message("CONFIGS:${configs}")
+
+add_library(iface1 INTERFACE)
+target_link_libraries(iface1 INTERFACE debug external1)
+
+get_property(tgt_iface TARGET iface1 PROPERTY INTERFACE_LINK_LIBRARIES)
+message("IFACE1:${tgt_iface}")
+
+set_property(GLOBAL APPEND PROPERTY DEBUG_CONFIGURATIONS EXTRA)
+get_property(configs GLOBAL PROPERTY DEBUG_CONFIGURATIONS)
+message("CONFIGS:${configs}")
+
+get_property(tgt_iface TARGET iface1 PROPERTY INTERFACE_LINK_LIBRARIES)
+message("IFACE1:${tgt_iface}")
+target_link_libraries(iface1 INTERFACE debug external2)
+get_property(tgt_iface TARGET iface1 PROPERTY INTERFACE_LINK_LIBRARIES)
+message("IFACE1:${tgt_iface}")
+
+set_property(GLOBAL PROPERTY DEBUG_CONFIGURATIONS NEW CONFIGS)
+get_property(configs GLOBAL PROPERTY DEBUG_CONFIGURATIONS)
+message("CONFIGS:${configs}")
+
+get_property(tgt_iface TARGET iface1 PROPERTY INTERFACE_LINK_LIBRARIES)
+message("IFACE1:${tgt_iface}")
+target_link_libraries(iface1 INTERFACE debug external3)
+get_property(tgt_iface TARGET iface1 PROPERTY INTERFACE_LINK_LIBRARIES)
+message("IFACE1:${tgt_iface}")
+
+set_property(GLOBAL APPEND PROPERTY DEBUG_CONFIGURATIONS EXTRA)
+get_property(configs GLOBAL PROPERTY DEBUG_CONFIGURATIONS)
+message("CONFIGS:${configs}")
+
+get_property(tgt_iface TARGET iface1 PROPERTY INTERFACE_LINK_LIBRARIES)
+message("IFACE1:${tgt_iface}")
+target_link_libraries(iface1 INTERFACE debug external4)
+get_property(tgt_iface TARGET iface1 PROPERTY INTERFACE_LINK_LIBRARIES)
+message("IFACE1:${tgt_iface}")
diff --git a/Tests/RunCMake/get_property/RunCMakeTest.cmake b/Tests/RunCMake/get_property/RunCMakeTest.cmake
index 1964824..e420b5b 100644
--- a/Tests/RunCMake/get_property/RunCMakeTest.cmake
+++ b/Tests/RunCMake/get_property/RunCMakeTest.cmake
@@ -7,3 +7,4 @@ run_cmake(install_properties)
 run_cmake(source_properties)
 run_cmake(target_properties)
 run_cmake(test_properties)
+run_cmake(DebugConfigurations)

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=7450a2c6ed601dc94f2de410661065554ff8ce12
commit 7450a2c6ed601dc94f2de410661065554ff8ce12
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sat Apr 11 14:16:47 2015 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Sun Apr 12 20:08:46 2015 +0200

    cmake: Remove method with no external users.
    
    Port internal users to access the member.

diff --git a/Source/cmake.cxx b/Source/cmake.cxx
index 99c12d6..d2331cb 100644
--- a/Source/cmake.cxx
+++ b/Source/cmake.cxx
@@ -290,9 +290,9 @@ void cmake::AddCommand(cmCommand* wg)
 void cmake::RemoveUnscriptableCommands()
 {
   std::vector<std::string> unscriptableCommands;
-  cmake::RegisteredCommandsMap* commands = this->GetCommands();
-  for (cmake::RegisteredCommandsMap::const_iterator pos = commands->begin();
-       pos != commands->end();
+  for (cmake::RegisteredCommandsMap::const_iterator
+       pos = this->Commands.begin();
+       pos != this->Commands.end();
        ++pos)
     {
     if (!pos->second->IsScriptable())
@@ -2323,8 +2323,8 @@ const char *cmake::GetProperty(const std::string& prop,
   else if ( prop == "COMMANDS" )
     {
     cmake::RegisteredCommandsMap::iterator cmds
-        = this->GetCommands()->begin();
-    for (unsigned int cc=0 ; cmds != this->GetCommands()->end(); ++ cmds )
+        = this->Commands.begin();
+    for (unsigned int cc=0 ; cmds != this->Commands.end(); ++ cmds )
       {
       if ( cc > 0 )
         {
diff --git a/Source/cmake.h b/Source/cmake.h
index 3acf4a8..d2d3a85 100644
--- a/Source/cmake.h
+++ b/Source/cmake.h
@@ -249,9 +249,6 @@ class cmake
    */
   cmCommand *GetCommand(const std::string& name);
 
-  /** Get list of all commands */
-  RegisteredCommandsMap* GetCommands() { return &this->Commands; }
-
   /** Check if a command exists. */
   bool CommandExists(const std::string& name) const;
 

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8c13d7709bb2a254e5927d3df1346d8264ba1bd5
commit 8c13d7709bb2a254e5927d3df1346d8264ba1bd5
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Mon Apr 6 18:35:49 2015 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Sun Apr 12 20:08:45 2015 +0200

    cmake: Don't set the CMakeInstance on the Properties member.
    
    There is no need, as global properties have nowhere to chain up
    to.

diff --git a/Source/cmake.cxx b/Source/cmake.cxx
index 7595155..99c12d6 100644
--- a/Source/cmake.cxx
+++ b/Source/cmake.cxx
@@ -187,7 +187,6 @@ cmake::~cmake()
 void cmake::InitializeProperties()
 {
   this->Properties.clear();
-  this->Properties.SetCMakeInstance(this);
   this->PropertyDefinitions.clear();
 
   // initialize properties

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=55ecd818f6bf70590d61584a87aae7bba992e26d
commit 55ecd818f6bf70590d61584a87aae7bba992e26d
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sun Apr 12 20:08:42 2015 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Sun Apr 12 20:08:42 2015 +0200

    cmGlobalGenerator: Store languages as vector, not map.
    
    The second component of the map is never used.

diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx
index 35394b8..6a6a503 100644
--- a/Source/cmGlobalGenerator.cxx
+++ b/Source/cmGlobalGenerator.cxx
@@ -968,7 +968,13 @@ void cmGlobalGenerator::SetLanguageEnabled(const std::string& l,
 void cmGlobalGenerator::SetLanguageEnabledFlag(const std::string& l,
                                                cmMakefile* mf)
 {
-  this->LanguageEnabled[l] = true;
+  std::vector<std::string>::iterator it =
+      std::lower_bound(this->LanguageEnabled.begin(),
+                       this->LanguageEnabled.end(), l);
+  if (it == this->LanguageEnabled.end() || *it != l)
+    {
+    this->LanguageEnabled.insert(it, l);
+    }
 
   // Fill the language-to-extension map with the current variable
   // settings to make sure it is available for the try_compile()
@@ -1079,7 +1085,8 @@ bool cmGlobalGenerator::IgnoreFile(const char* ext) const
 
 bool cmGlobalGenerator::GetLanguageEnabled(const std::string& l) const
 {
-  return (this->LanguageEnabled.find(l)!= this->LanguageEnabled.end());
+  return std::binary_search(this->LanguageEnabled.begin(),
+                            this->LanguageEnabled.end(), l);
 }
 
 void cmGlobalGenerator::ClearEnabledLanguages()
@@ -1958,11 +1965,7 @@ bool cmGlobalGenerator::IsExcluded(cmLocalGenerator* root,
 void
 cmGlobalGenerator::GetEnabledLanguages(std::vector<std::string>& lang) const
 {
-  for(std::map<std::string, bool>::const_iterator i =
-        this->LanguageEnabled.begin(); i != this->LanguageEnabled.end(); ++i)
-    {
-    lang.push_back(i->first);
-    }
+  lang = this->LanguageEnabled;
 }
 
 int cmGlobalGenerator::GetLinkerPreference(const std::string& lang) const
diff --git a/Source/cmGlobalGenerator.h b/Source/cmGlobalGenerator.h
index 5b9ddee..ce3f037 100644
--- a/Source/cmGlobalGenerator.h
+++ b/Source/cmGlobalGenerator.h
@@ -441,7 +441,7 @@ private:
   // If you add a new map here, make sure it is copied
   // in EnableLanguagesFromGenerator
   std::map<std::string, bool> IgnoreExtensions;
-  std::map<std::string, bool> LanguageEnabled;
+  std::vector<std::string> LanguageEnabled;
   std::set<std::string> LanguagesReady; // Ready for try_compile
   std::map<std::string, std::string> OutputExtensions;
   std::map<std::string, std::string> LanguageToOutputExtension;

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

Summary of changes:
 Source/CMakeLists.txt                              |    4 +
 Source/CMakeVersion.cmake                          |    2 +-
 Source/cmBootstrapCommands1.cxx                    |    3 +-
 Source/cmBootstrapCommands2.cxx                    |    3 +-
 Source/cmCommands.cxx.in                           |    2 +-
 Source/cmCommands.h                                |    8 +-
 Source/cmCommandsForBootstrap.cxx                  |    2 +-
 Source/cmFileCommand.cxx                           |    2 +
 Source/cmGlobalGenerator.cxx                       |   17 ++-
 Source/cmGlobalGenerator.h                         |    2 +-
 Source/cmLocalGenerator.cxx                        |    1 -
 Source/cmMakefile.cxx                              |   39 ++---
 Source/cmMakefile.h                                |   11 +-
 Source/cmTarget.cxx                                |    4 +-
 Source/cmTargetLinkLibrariesCommand.cxx            |    2 +-
 Source/cmake.cxx                                   |  154 ++++++++++----------
 Source/cmake.h                                     |   48 ++----
 .../get_property/DebugConfigurations-stderr.txt    |   11 ++
 .../get_property/DebugConfigurations.cmake         |   41 ++++++
 Tests/RunCMake/get_property/RunCMakeTest.cmake     |    1 +
 bootstrap                                          |    4 +-
 21 files changed, 189 insertions(+), 172 deletions(-)
 create mode 100644 Tests/RunCMake/get_property/DebugConfigurations-stderr.txt
 create mode 100644 Tests/RunCMake/get_property/DebugConfigurations.cmake


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list