[Cmake-commits] CMake branch, next, updated. v3.2.2-2327-ge6c8bce

Stephen Kelly steveire at gmail.com
Wed Apr 29 17:54:52 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  e6c8bcef7e39344832a015b02283213d855e83d4 (commit)
       via  f79cd99d6dcdfcdcd341c5ea90a5f2d9c4d6d3bc (commit)
       via  aa4d1ee80f1ced5b09335cc84bdd373c0875fd80 (commit)
       via  60becdc65c5f8cfad4b2c6a33e3649d2acbddf39 (commit)
      from  6571f7429e95375354f2eca53e1e2d763b26e22b (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=e6c8bcef7e39344832a015b02283213d855e83d4
commit e6c8bcef7e39344832a015b02283213d855e83d4
Merge: 6571f74 f79cd99
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Wed Apr 29 17:54:51 2015 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Wed Apr 29 17:54:51 2015 -0400

    Merge topic 'MakeClosure-external-loop' into next
    
    f79cd99d cmDefinitions: Implement MakeClosure in terms of reverse iterators.
    aa4d1ee8 cmDefinitions: Convert MakeClosure into a static method.
    60becdc6 cmDefinitions: Implement MakeClosure in terms of a list of ancestors.


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f79cd99d6dcdfcdcd341c5ea90a5f2d9c4d6d3bc
commit f79cd99d6dcdfcdcd341c5ea90a5f2d9c4d6d3bc
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Wed Apr 29 23:48:43 2015 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Wed Apr 29 23:54:20 2015 +0200

    cmDefinitions: Implement MakeClosure in terms of reverse iterators.
    
    Iterate directly over the parent content provided by cmMakefile.

diff --git a/Source/cmDefinitions.cxx b/Source/cmDefinitions.cxx
index d1fbe74..718d9ec 100644
--- a/Source/cmDefinitions.cxx
+++ b/Source/cmDefinitions.cxx
@@ -76,27 +76,27 @@ std::vector<std::string> cmDefinitions::LocalKeys() const
 
 //----------------------------------------------------------------------------
 cmDefinitions cmDefinitions::MakeClosure(
-    std::list<cmDefinitions const*>::iterator begin,
-    std::list<cmDefinitions const*>::iterator end)
+    std::list<cmDefinitions>::const_reverse_iterator rbegin,
+    std::list<cmDefinitions>::const_reverse_iterator rend)
 {
   std::set<std::string> undefined;
   cmDefinitions closure;
-  closure.MakeClosure(undefined, begin, end);
+  closure.MakeClosure(undefined, rbegin, rend);
   return closure;
 }
 
 //----------------------------------------------------------------------------
 void
 cmDefinitions::MakeClosure(std::set<std::string>& undefined,
-                           std::list<cmDefinitions const*>::iterator begin,
-                           std::list<cmDefinitions const*>::iterator end)
+    std::list<cmDefinitions>::const_reverse_iterator rbegin,
+    std::list<cmDefinitions>::const_reverse_iterator rend)
 {
-  for (std::list<cmDefinitions const*>::const_iterator it = begin;
-       it != end; ++it)
+  for (std::list<cmDefinitions>::const_reverse_iterator it = rbegin;
+       it != rend; ++it)
     {
     // Consider local definitions.
-    for(MapType::const_iterator mi = (*it)->Map.begin();
-        mi != (*it)->Map.end(); ++mi)
+    for(MapType::const_iterator mi = it->Map.begin();
+        mi != it->Map.end(); ++mi)
       {
       // Use this key if it is not already set or unset.
       if(this->Map.find(mi->first) == this->Map.end() &&
diff --git a/Source/cmDefinitions.h b/Source/cmDefinitions.h
index 67b6170..87f5c34 100644
--- a/Source/cmDefinitions.h
+++ b/Source/cmDefinitions.h
@@ -51,8 +51,8 @@ public:
   std::vector<std::string> ClosureKeys() const;
 
   static cmDefinitions MakeClosure(
-      std::list<cmDefinitions const*>::iterator begin,
-      std::list<cmDefinitions const*>::iterator end);
+      std::list<cmDefinitions>::const_reverse_iterator rbegin,
+      std::list<cmDefinitions>::const_reverse_iterator rend);
 
 private:
   // String with existence boolean.
@@ -84,8 +84,8 @@ private:
   Def const& GetInternal(const std::string& key);
 
   void MakeClosure(std::set<std::string>& undefined,
-                   std::list<cmDefinitions const*>::iterator begin,
-                   std::list<cmDefinitions const*>::iterator end);
+                   std::list<cmDefinitions>::const_reverse_iterator rbegin,
+                   std::list<cmDefinitions>::const_reverse_iterator rend);
 };
 
 #endif
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index 8797090..6451874 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -63,15 +63,9 @@ public:
 
   void InitializeDefinitions(cmMakefile* parent)
   {
-    std::list<cmDefinitions const*> defPtrs;
-    for (std::list<cmDefinitions>::iterator it =
-         parent->Internal->VarStack.begin();
-         it != parent->Internal->VarStack.end(); ++it)
-      {
-      defPtrs.push_back(&*it);
-      }
-    this->VarStack.back() = cmDefinitions::MakeClosure(defPtrs.begin(),
-                                                       defPtrs.end());
+    this->VarStack.back() =
+        cmDefinitions::MakeClosure(parent->Internal->VarStack.rbegin(),
+                                   parent->Internal->VarStack.rend());
   }
 
   const char* GetDefinition(std::string const& name)

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=aa4d1ee80f1ced5b09335cc84bdd373c0875fd80
commit aa4d1ee80f1ced5b09335cc84bdd373c0875fd80
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sun Apr 26 16:13:56 2015 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Wed Apr 29 23:54:17 2015 +0200

    cmDefinitions: Convert MakeClosure into a static method.
    
    Accept a range of cmDefinitions*.

diff --git a/Source/cmDefinitions.cxx b/Source/cmDefinitions.cxx
index 873a7b4..d1fbe74 100644
--- a/Source/cmDefinitions.cxx
+++ b/Source/cmDefinitions.cxx
@@ -75,18 +75,13 @@ std::vector<std::string> cmDefinitions::LocalKeys() const
 }
 
 //----------------------------------------------------------------------------
-cmDefinitions cmDefinitions::MakeClosure() const
+cmDefinitions cmDefinitions::MakeClosure(
+    std::list<cmDefinitions const*>::iterator begin,
+    std::list<cmDefinitions const*>::iterator end)
 {
   std::set<std::string> undefined;
   cmDefinitions closure;
-  cmDefinitions const* defs = this;
-  std::list<cmDefinitions const*> ups;
-  while(defs)
-    {
-    ups.push_back(defs);
-    defs = defs->Up;
-    }
-  closure.MakeClosure(undefined, ups.begin(), ups.end());
+  closure.MakeClosure(undefined, begin, end);
   return closure;
 }
 
diff --git a/Source/cmDefinitions.h b/Source/cmDefinitions.h
index 40e0531..67b6170 100644
--- a/Source/cmDefinitions.h
+++ b/Source/cmDefinitions.h
@@ -50,7 +50,9 @@ public:
   /** Compute the set of all defined keys.  */
   std::vector<std::string> ClosureKeys() const;
 
-  cmDefinitions MakeClosure() const;
+  static cmDefinitions MakeClosure(
+      std::list<cmDefinitions const*>::iterator begin,
+      std::list<cmDefinitions const*>::iterator end);
 
 private:
   // String with existence boolean.
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index 8cfb83a..8797090 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -63,7 +63,15 @@ public:
 
   void InitializeDefinitions(cmMakefile* parent)
   {
-    this->VarStack.back() = parent->Internal->VarStack.back().MakeClosure();
+    std::list<cmDefinitions const*> defPtrs;
+    for (std::list<cmDefinitions>::iterator it =
+         parent->Internal->VarStack.begin();
+         it != parent->Internal->VarStack.end(); ++it)
+      {
+      defPtrs.push_back(&*it);
+      }
+    this->VarStack.back() = cmDefinitions::MakeClosure(defPtrs.begin(),
+                                                       defPtrs.end());
   }
 
   const char* GetDefinition(std::string const& name)

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=60becdc65c5f8cfad4b2c6a33e3649d2acbddf39
commit 60becdc65c5f8cfad4b2c6a33e3649d2acbddf39
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sun Apr 26 16:00:18 2015 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Wed Apr 29 23:54:02 2015 +0200

    cmDefinitions: Implement MakeClosure in terms of a list of ancestors.

diff --git a/Source/cmDefinitions.cxx b/Source/cmDefinitions.cxx
index 5fe57c8..873a7b4 100644
--- a/Source/cmDefinitions.cxx
+++ b/Source/cmDefinitions.cxx
@@ -11,8 +11,6 @@
 ============================================================================*/
 #include "cmDefinitions.h"
 
-#include <list>
-
 //----------------------------------------------------------------------------
 cmDefinitions::Def cmDefinitions::NoDef;
 
@@ -81,22 +79,25 @@ cmDefinitions cmDefinitions::MakeClosure() const
 {
   std::set<std::string> undefined;
   cmDefinitions closure;
-  closure.MakeClosure(undefined, this);
-  return closure;
-}
-
-//----------------------------------------------------------------------------
-void cmDefinitions::MakeClosure(std::set<std::string>& undefined,
-                                cmDefinitions const* defs)
-{
+  cmDefinitions const* defs = this;
   std::list<cmDefinitions const*> ups;
   while(defs)
     {
     ups.push_back(defs);
     defs = defs->Up;
     }
-  for (std::list<cmDefinitions const*>::const_iterator it = ups.begin();
-       it != ups.end(); ++it)
+  closure.MakeClosure(undefined, ups.begin(), ups.end());
+  return closure;
+}
+
+//----------------------------------------------------------------------------
+void
+cmDefinitions::MakeClosure(std::set<std::string>& undefined,
+                           std::list<cmDefinitions const*>::iterator begin,
+                           std::list<cmDefinitions const*>::iterator end)
+{
+  for (std::list<cmDefinitions const*>::const_iterator it = begin;
+       it != end; ++it)
     {
     // Consider local definitions.
     for(MapType::const_iterator mi = (*it)->Map.begin();
diff --git a/Source/cmDefinitions.h b/Source/cmDefinitions.h
index 6917402..40e0531 100644
--- a/Source/cmDefinitions.h
+++ b/Source/cmDefinitions.h
@@ -17,6 +17,8 @@
 #include "cmsys/hash_map.hxx"
 #endif
 
+#include <list>
+
 /** \class cmDefinitions
  * \brief Store a scope of variable definitions for CMake language.
  *
@@ -80,7 +82,8 @@ private:
   Def const& GetInternal(const std::string& key);
 
   void MakeClosure(std::set<std::string>& undefined,
-                   cmDefinitions const* defs);
+                   std::list<cmDefinitions const*>::iterator begin,
+                   std::list<cmDefinitions const*>::iterator end);
 };
 
 #endif

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

Summary of changes:


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list