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  051a565a7adf3c5a7e0dc02306a0f5368a74e212 (commit)
       via  bb9d71b4fee2cc4abf55e0dcbadf85c6cbe0d07d (commit)
       via  4afe6c26c66556827e6089982c49b8dea3a2efcb (commit)
       via  a3a0a8c222b59f15502f52192bf41c4af2882392 (commit)
       via  8c74a41ff3b6fce1bb7d088d16f5e0a9ae8ab55d (commit)
       via  61fe1919de8c0455a6baff543ccfcb35fce8f37b (commit)
       via  09d6125bfe4034f332956f4bcc5b0a1ba0b82e27 (commit)
       via  8ed6ecac3fb0f832333e2d5d6f3551ab8e335d0f (commit)
       via  dfe49c205654a51f860507ea5d8ad133b2a4f064 (commit)
       via  21b0654ace2ce58d191c2e42a8583b05614cd037 (commit)
       via  416df93aa93d0a633f0e7354d0562934f676768b (commit)
       via  37b88d348a20921c835ce7aa99f6db62271503a7 (commit)
       via  a281809384cc19cc9a7d1726b243020b380b9395 (commit)
       via  76207b0861478318115d65c2e983f4d88c937724 (commit)
       via  60c3bb73e39f7b19a17c989a0f9bf70bbfe73683 (commit)
       via  05fec779d33b872721b9731e872125ebeb89403b (commit)
      from  5195e57aaa313fe3d9f14143a6f212cdaea81ccd (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=051a565a7adf3c5a7e0dc02306a0f5368a74e212
commit 051a565a7adf3c5a7e0dc02306a0f5368a74e212
Merge: 5195e57 bb9d71b
Author:     Stephen Kelly <steve...@gmail.com>
AuthorDate: Fri Feb 20 15:39:42 2015 -0500
Commit:     CMake Topic Stage <kwro...@kitware.com>
CommitDate: Fri Feb 20 15:39:42 2015 -0500

    Merge topic 'use-algorithms' into next
    
    bb9d71b4 Replace loops with algorithms.
    4afe6c26 cmAlgorithms: Add cmReverseRange adaptor.
    a3a0a8c2 cmAlgorithms: Add cmFindNot algorithm.
    8c74a41f cmRST: Replace two erase with a rotate and larger erase.
    61fe1919 cmAlgorithms: Update concept requirement to FowardIterator
    09d6125b cmAlgorithms: Move cmRotate out of 'implementation detail' 
namespace.
    8ed6ecac cmRST: Move two algorithms beside each other.
    dfe49c20 cmRST: Use std::min where appropriate.
    21b0654a cmGlobalGenerator: Convert set insert algorithm to vector 
algorithms.
    416df93a Convert some raw loops to cmWrap.
    37b88d34 cmAlgorithms: Add cmWrap.
    a2818093 Use cmJoin where possible.
    76207b08 cmCacheManager: Replace loop with algorithm.
    60c3bb73 cmGlobalGenerator: Replace loop with algorithm.
    05fec779 cmTarget: Port loop to algorithm.


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=bb9d71b4fee2cc4abf55e0dcbadf85c6cbe0d07d
commit bb9d71b4fee2cc4abf55e0dcbadf85c6cbe0d07d
Author:     Stephen Kelly <steve...@gmail.com>
AuthorDate: Mon Feb 2 02:13:54 2015 +0100
Commit:     Stephen Kelly <steve...@gmail.com>
CommitDate: Fri Feb 20 21:36:58 2015 +0100

    Replace loops with algorithms.

diff --git a/Source/cmRST.cxx b/Source/cmRST.cxx
index c261d57..cb61ed9 100644
--- a/Source/cmRST.cxx
+++ b/Source/cmRST.cxx
@@ -484,19 +484,12 @@ void cmRST::UnindentLines(std::vector<std::string>& lines)
       }
     }
 
-  // Drop leading blank lines.
-  size_t leadingEmpty = 0;
-  for(size_t i = 0; i < lines.size() && lines[i].empty(); ++i)
-    {
-    ++leadingEmpty;
-    }
+  std::vector<std::string>::const_iterator it = lines.begin();
+  size_t leadingEmpty = std::distance(it, cmFindNot(lines, std::string()));
 
-  // Drop trailing blank lines.
-  size_t trailingEmpty = 0;
-  for(size_t i = lines.size(); i > 0 && lines[i-1].empty(); --i)
-    {
-    ++trailingEmpty;
-    }
+  std::vector<std::string>::const_reverse_iterator rit = lines.rbegin();
+  size_t trailingEmpty = std::distance(rit,
+                            cmFindNot(cmReverseRange(lines), std::string()));
 
   std::vector<std::string>::iterator contentEnd
       = cmRotate(lines.begin(),

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=4afe6c26c66556827e6089982c49b8dea3a2efcb
commit 4afe6c26c66556827e6089982c49b8dea3a2efcb
Author:     Stephen Kelly <steve...@gmail.com>
AuthorDate: Tue Feb 17 22:04:25 2015 +0100
Commit:     Stephen Kelly <steve...@gmail.com>
CommitDate: Fri Feb 20 21:36:58 2015 +0100

    cmAlgorithms: Add cmReverseRange adaptor.
    
    Use it to implement list(REVERSE).

diff --git a/Source/cmAlgorithms.h b/Source/cmAlgorithms.h
index d88de1e..b9bd67b 100644
--- a/Source/cmAlgorithms.h
+++ b/Source/cmAlgorithms.h
@@ -302,4 +302,12 @@ typename Range::const_iterator cmFindNot(Range const& r, T 
const& t)
                       std::bind1st(std::not_equal_to<T>(), t));
 }
 
+template<typename Range>
+ContainerAlgorithms::Range<typename Range::const_reverse_iterator>
+cmReverseRange(Range const& range)
+{
+  return ContainerAlgorithms::Range<typename Range::const_reverse_iterator>(
+      range.rbegin(), range.rend());
+}
+
 #endif
diff --git a/Source/cmListCommand.cxx b/Source/cmListCommand.cxx
index 0c6adfd..17617aa 100644
--- a/Source/cmListCommand.cxx
+++ b/Source/cmListCommand.cxx
@@ -390,8 +390,7 @@ bool cmListCommand
     return false;
     }
 
-  std::reverse(varArgsExpanded.begin(), varArgsExpanded.end());
-  std::string value = cmJoin(varArgsExpanded, ";");
+  std::string value = cmJoin(cmReverseRange(varArgsExpanded), ";");
 
   this->Makefile->AddDefinition(listName, value.c_str());
   return true;

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a3a0a8c222b59f15502f52192bf41c4af2882392
commit a3a0a8c222b59f15502f52192bf41c4af2882392
Author:     Stephen Kelly <steve...@gmail.com>
AuthorDate: Wed Feb 11 23:53:41 2015 +0100
Commit:     Stephen Kelly <steve...@gmail.com>
CommitDate: Fri Feb 20 21:36:58 2015 +0100

    cmAlgorithms: Add cmFindNot algorithm.

diff --git a/Source/cmAlgorithms.h b/Source/cmAlgorithms.h
index 53e2dc8..d88de1e 100644
--- a/Source/cmAlgorithms.h
+++ b/Source/cmAlgorithms.h
@@ -295,4 +295,11 @@ std::string cmWrap(char prefix, Range const& r, char 
suffix, std::string sep)
   return cmWrap(std::string(1, prefix), r, std::string(1, suffix), sep);
 }
 
+template<typename Range, typename T>
+typename Range::const_iterator cmFindNot(Range const& r, T const& t)
+{
+  return std::find_if(r.begin(), r.end(),
+                      std::bind1st(std::not_equal_to<T>(), t));
+}
+
 #endif

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8c74a41ff3b6fce1bb7d088d16f5e0a9ae8ab55d
commit 8c74a41ff3b6fce1bb7d088d16f5e0a9ae8ab55d
Author:     Stephen Kelly <steve...@gmail.com>
AuthorDate: Fri Jan 30 00:03:24 2015 +0100
Commit:     Stephen Kelly <steve...@gmail.com>
CommitDate: Fri Feb 20 21:36:58 2015 +0100

    cmRST: Replace two erase with a rotate and larger erase.

diff --git a/Source/cmRST.cxx b/Source/cmRST.cxx
index 14e8ad9..c261d57 100644
--- a/Source/cmRST.cxx
+++ b/Source/cmRST.cxx
@@ -497,6 +497,10 @@ void cmRST::UnindentLines(std::vector<std::string>& lines)
     {
     ++trailingEmpty;
     }
-  lines.erase(lines.begin(), lines.begin()+leadingEmpty);
-  lines.erase(lines.end()-trailingEmpty, lines.end());
+
+  std::vector<std::string>::iterator contentEnd
+      = cmRotate(lines.begin(),
+                 lines.begin() + leadingEmpty,
+                 lines.end() - trailingEmpty);
+  lines.erase(contentEnd, lines.end());
 }

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=61fe1919de8c0455a6baff543ccfcb35fce8f37b
commit 61fe1919de8c0455a6baff543ccfcb35fce8f37b
Author:     Stephen Kelly <steve...@gmail.com>
AuthorDate: Tue Feb 17 21:59:26 2015 +0100
Commit:     Stephen Kelly <steve...@gmail.com>
CommitDate: Fri Feb 20 21:36:58 2015 +0100

    cmAlgorithms: Update concept requirement to FowardIterator

diff --git a/Source/cmAlgorithms.h b/Source/cmAlgorithms.h
index 30a062a..53e2dc8 100644
--- a/Source/cmAlgorithms.h
+++ b/Source/cmAlgorithms.h
@@ -81,14 +81,14 @@ private:
   const std::string m_test;
 };
 
-template<typename BiDirIt>
-BiDirIt cmRotate(BiDirIt first, BiDirIt middle, BiDirIt last)
+template<typename FwdIt>
+FwdIt cmRotate(FwdIt first, FwdIt middle, FwdIt last)
 {
-  typename std::iterator_traits<BiDirIt>::difference_type dist =
-      std::distance(first, middle);
+  typename std::iterator_traits<FwdIt>::difference_type dist =
+      std::distance(middle, last);
   std::rotate(first, middle, last);
-  std::advance(last, -dist);
-  return last;
+  std::advance(first, dist);
+  return first;
 }
 
 namespace ContainerAlgorithms {

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=09d6125bfe4034f332956f4bcc5b0a1ba0b82e27
commit 09d6125bfe4034f332956f4bcc5b0a1ba0b82e27
Author:     Stephen Kelly <steve...@gmail.com>
AuthorDate: Sun Feb 15 23:39:38 2015 +0100
Commit:     Stephen Kelly <steve...@gmail.com>
CommitDate: Fri Feb 20 21:36:58 2015 +0100

    cmAlgorithms: Move cmRotate out of 'implementation detail' namespace.
    
    This should be generally usable in cmake.

diff --git a/Source/cmAlgorithms.h b/Source/cmAlgorithms.h
index 43e113b..30a062a 100644
--- a/Source/cmAlgorithms.h
+++ b/Source/cmAlgorithms.h
@@ -81,6 +81,16 @@ private:
   const std::string m_test;
 };
 
+template<typename BiDirIt>
+BiDirIt cmRotate(BiDirIt first, BiDirIt middle, BiDirIt last)
+{
+  typename std::iterator_traits<BiDirIt>::difference_type dist =
+      std::distance(first, middle);
+  std::rotate(first, middle, last);
+  std::advance(last, -dist);
+  return last;
+}
+
 namespace ContainerAlgorithms {
 
 template<typename T>
@@ -138,20 +148,10 @@ private:
   const_iterator End;
 };
 
-template<typename BiDirIt>
-BiDirIt Rotate(BiDirIt first, BiDirIt middle, BiDirIt last)
-{
-  typename std::iterator_traits<BiDirIt>::difference_type dist =
-      std::distance(first, middle);
-  std::rotate(first, middle, last);
-  std::advance(last, -dist);
-  return last;
-}
-
 template<typename Iter>
 Iter RemoveN(Iter i1, Iter i2, size_t n)
 {
-  return ContainerAlgorithms::Rotate(i1, i1 + n, i2);
+  return cmRotate(i1, i1 + n, i2);
 }
 
 template<typename Range>

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8ed6ecac3fb0f832333e2d5d6f3551ab8e335d0f
commit 8ed6ecac3fb0f832333e2d5d6f3551ab8e335d0f
Author:     Stephen Kelly <steve...@gmail.com>
AuthorDate: Fri Jan 30 00:01:06 2015 +0100
Commit:     Stephen Kelly <steve...@gmail.com>
CommitDate: Fri Feb 20 21:36:58 2015 +0100

    cmRST: Move two algorithms beside each other.

diff --git a/Source/cmRST.cxx b/Source/cmRST.cxx
index da72ab7..14e8ad9 100644
--- a/Source/cmRST.cxx
+++ b/Source/cmRST.cxx
@@ -490,7 +490,6 @@ void cmRST::UnindentLines(std::vector<std::string>& lines)
     {
     ++leadingEmpty;
     }
-  lines.erase(lines.begin(), lines.begin()+leadingEmpty);
 
   // Drop trailing blank lines.
   size_t trailingEmpty = 0;
@@ -498,5 +497,6 @@ void cmRST::UnindentLines(std::vector<std::string>& lines)
     {
     ++trailingEmpty;
     }
+  lines.erase(lines.begin(), lines.begin()+leadingEmpty);
   lines.erase(lines.end()-trailingEmpty, lines.end());
 }

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=dfe49c205654a51f860507ea5d8ad133b2a4f064
commit dfe49c205654a51f860507ea5d8ad133b2a4f064
Author:     Stephen Kelly <steve...@gmail.com>
AuthorDate: Wed Feb 11 23:43:55 2015 +0100
Commit:     Stephen Kelly <steve...@gmail.com>
CommitDate: Fri Feb 20 21:36:58 2015 +0100

    cmRST: Use std::min where appropriate.

diff --git a/Source/cmRST.cxx b/Source/cmRST.cxx
index d20d999..da72ab7 100644
--- a/Source/cmRST.cxx
+++ b/Source/cmRST.cxx
@@ -463,10 +463,7 @@ void cmRST::UnindentLines(std::vector<std::string>& lines)
       }
 
     // Truncate indentation to match that on this line.
-    if(line.size() < indentEnd)
-      {
-      indentEnd = line.size();
-      }
+    indentEnd = std::min(indentEnd, line.size());
     for(std::string::size_type j = 0; j != indentEnd; ++j)
       {
       if(line[j] != indentText[j])

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=21b0654ace2ce58d191c2e42a8583b05614cd037
commit 21b0654ace2ce58d191c2e42a8583b05614cd037
Author:     Stephen Kelly <steve...@gmail.com>
AuthorDate: Wed Feb 18 23:29:18 2015 +0100
Commit:     Stephen Kelly <steve...@gmail.com>
CommitDate: Fri Feb 20 21:36:57 2015 +0100

    cmGlobalGenerator: Convert set insert algorithm to vector algorithms.
    
    Adjust test for new error output.

diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx
index 93692f6..6147009 100644
--- a/Source/cmGlobalGenerator.cxx
+++ b/Source/cmGlobalGenerator.cxx
@@ -3015,7 +3015,7 @@ void cmGlobalGenerator::AddEvaluationFile(const 
std::string &inputFile,
 //----------------------------------------------------------------------------
 void cmGlobalGenerator::ProcessEvaluationFiles()
 {
-  std::set<std::string> generatedFiles;
+  std::vector<std::string> generatedFiles;
   for(std::vector<cmGeneratorExpressionEvaluationFile*>::const_iterator
       li = this->EvaluationFiles.begin();
       li != this->EvaluationFiles.end();
@@ -3027,16 +3027,24 @@ void cmGlobalGenerator::ProcessEvaluationFiles()
       return;
       }
     std::vector<std::string> files = (*li)->GetFiles();
-    for(std::vector<std::string>::const_iterator fi = files.begin();
-        fi != files.end(); ++fi)
+    std::sort(files.begin(), files.end());
+
+    std::vector<std::string> intersection;
+    std::set_intersection(files.begin(), files.end(),
+                          generatedFiles.begin(), generatedFiles.end(),
+                          std::back_inserter(intersection));
+    if (!intersection.empty())
       {
-      if (!generatedFiles.insert(*fi).second)
-        {
-        cmSystemTools::Error("File to be generated by multiple different "
-          "commands: ", fi->c_str());
-        return;
-        }
+      cmSystemTools::Error("Files to be generated by multiple different "
+        "commands: ", cmWrap('"', intersection, '"', " ").c_str());
+      return;
       }
+
+        generatedFiles.insert(generatedFiles.end(),
+                              files.begin(), files.end());
+    std::vector<std::string>::iterator newIt =
+        generatedFiles.end() - files.size();
+    std::inplace_merge(generatedFiles.begin(), newIt, generatedFiles.end());
     }
 }
 
diff --git a/Tests/RunCMake/File_Generate/CommandConflict-stderr.txt 
b/Tests/RunCMake/File_Generate/CommandConflict-stderr.txt
index da97ba4..4fa3f20 100644
--- a/Tests/RunCMake/File_Generate/CommandConflict-stderr.txt
+++ b/Tests/RunCMake/File_Generate/CommandConflict-stderr.txt
@@ -1 +1 @@
-CMake Error: File to be generated by multiple different commands: 
.*CommandConflict-build/output_.*.txt
+CMake Error: Files to be generated by multiple different commands: 
".*CommandConflict-build/output_.*.txt"

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=416df93aa93d0a633f0e7354d0562934f676768b
commit 416df93aa93d0a633f0e7354d0562934f676768b
Author:     Stephen Kelly <steve...@gmail.com>
AuthorDate: Wed Feb 18 22:14:26 2015 +0100
Commit:     Stephen Kelly <steve...@gmail.com>
CommitDate: Fri Feb 20 21:36:57 2015 +0100

    Convert some raw loops to cmWrap.

diff --git a/Source/cmComputeLinkDepends.cxx b/Source/cmComputeLinkDepends.cxx
index 8652690..be28b2f 100644
--- a/Source/cmComputeLinkDepends.cxx
+++ b/Source/cmComputeLinkDepends.cxx
@@ -705,10 +705,7 @@ void cmComputeLinkDepends::DisplayConstraintGraph()
     {
     EdgeList const& nl = this->EntryConstraintGraph[i];
     e << "item " << i << " is [" << this->EntryList[i].Item << "]\n";
-    for(EdgeList::const_iterator j = nl.begin(); j != nl.end(); ++j)
-      {
-      e << "  item " << *j << " must follow it\n";
-      }
+    e << cmWrap("  item ", nl, " must follow it", "\n") << "\n";
     }
   fprintf(stderr, "%s\n", e.str().c_str());
 }
diff --git a/Source/cmCoreTryCompile.cxx b/Source/cmCoreTryCompile.cxx
index bcd2d81..e9390e4 100644
--- a/Source/cmCoreTryCompile.cxx
+++ b/Source/cmCoreTryCompile.cxx
@@ -683,11 +683,9 @@ void cmCoreTryCompile::FindOutputFile(const std::string& 
targetName)
 
   std::ostringstream emsg;
   emsg << "Unable to find the executable at any of:\n";
-  for (unsigned int i = 0; i < searchDirs.size(); ++i)
-    {
-    emsg << "  " << this->BinaryDirectory << searchDirs[i]
-         << tmpOutputFile << "\n";
-    }
+  emsg << cmWrap("  " + this->BinaryDirectory,
+                 searchDirs,
+                 tmpOutputFile, "\n") << "\n";
   this->FindErrorMessage = emsg.str();
   return;
 }
diff --git a/Source/cmFindBase.cxx b/Source/cmFindBase.cxx
index fd3aa0b..6fe055a 100644
--- a/Source/cmFindBase.cxx
+++ b/Source/cmFindBase.cxx
@@ -355,11 +355,7 @@ void cmFindBase::PrintFindStuff()
   std::cerr << "SearchPathSuffixes  ";
   std::cerr << cmJoin(this->SearchPathSuffixes, "\n") << "\n";
   std::cerr << "SearchPaths\n";
-  for(std::vector<std::string>::const_iterator i = this->SearchPaths.begin();
-      i != this->SearchPaths.end(); ++i)
-    {
-    std::cerr << "[" << *i << "]\n";
-    }
+  std::cerr << cmWrap("[", this->SearchPaths, "]", "\n") << "\n";
 }
 
 bool cmFindBase::CheckForVariableInCache()
diff --git a/Source/cmFindPackageCommand.cxx b/Source/cmFindPackageCommand.cxx
index fd9b236..26bd4b9 100644
--- a/Source/cmFindPackageCommand.cxx
+++ b/Source/cmFindPackageCommand.cxx
@@ -329,10 +329,7 @@ bool cmFindPackageCommand
     {
     std::ostringstream e;
     e << "called with components that are both required and optional:\n";
-    for(unsigned int i=0; i<doubledComponents.size(); ++i)
-      {
-      e << "  " << doubledComponents[i] << "\n";
-      }
+    e << cmWrap("  ", doubledComponents, "", "\n") << "\n";
     this->SetError(e.str());
     return false;
     }
@@ -808,13 +805,8 @@ bool cmFindPackageCommand::HandlePackageMode()
           {
           e << "Could not find a package configuration file provided by \""
             << this->Name << "\"" << requestedVersionString
-            << " with any of the following names:\n";
-          for(std::vector<std::string>::const_iterator ci =
-                this->Configs.begin();
-              ci != this->Configs.end(); ++ci)
-            {
-            e << "  " << *ci << "\n";
-            }
+            << " with any of the following names:\n"
+            << cmWrap("  ", this->Configs, "", "\n") << "\n";
           }
 
         e << "Add the installation prefix of \"" << this->Name << "\" to "
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index 6fd569e..3c92fca 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -213,13 +213,7 @@ cmMakefile::~cmMakefile()
 void cmMakefile::PrintStringVector(const char* s,
                                    const std::vector<std::string>& v) const
 {
-  std::cout << s << ": ( \n";
-  for(std::vector<std::string>::const_iterator i = v.begin();
-      i != v.end(); ++i)
-    {
-    std::cout << *i << " ";
-    }
-  std::cout << " )\n";
+  std::cout << s << ": ( \n" << cmWrap('"', v, '"', " ") << ")\n";
 }
 
 void cmMakefile

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=37b88d348a20921c835ce7aa99f6db62271503a7
commit 37b88d348a20921c835ce7aa99f6db62271503a7
Author:     Stephen Kelly <steve...@gmail.com>
AuthorDate: Wed Feb 18 23:50:36 2015 +0100
Commit:     Stephen Kelly <steve...@gmail.com>
CommitDate: Fri Feb 20 21:35:58 2015 +0100

    cmAlgorithms: Add cmWrap.
    
    Port some existing cmJoin to use it.
    
    cmJoin is cumbersome to use in cases where the objective is to
    somehow 'quote' each item and then join it with a separator.  In that
    case, the joiner string is harder to read and reason about.  cmWrap
    aims to solve that.
    
    Provide an overload taking char wrappers to simplify the case
    of surrounding every element in quotes without needing to escape
    the quote character.

diff --git a/Source/cmAlgorithms.h b/Source/cmAlgorithms.h
index 8491838..43e113b 100644
--- a/Source/cmAlgorithms.h
+++ b/Source/cmAlgorithms.h
@@ -278,4 +278,21 @@ typename Range::const_iterator cmRemoveDuplicates(Range& r)
   return cmRemoveIndices(r, indices);
 }
 
+template<typename Range>
+std::string cmWrap(std::string prefix, Range const& r, std::string suffix,
+                   std::string sep)
+{
+  if (r.empty())
+    {
+    return std::string();
+    }
+  return prefix + cmJoin(r, (suffix + sep + prefix).c_str()) + suffix;
+}
+
+template<typename Range>
+std::string cmWrap(char prefix, Range const& r, char suffix, std::string sep)
+{
+  return cmWrap(std::string(1, prefix), r, std::string(1, suffix), sep);
+}
+
 #endif
diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx
index ac4489a..93692f6 100644
--- a/Source/cmGlobalGenerator.cxx
+++ b/Source/cmGlobalGenerator.cxx
@@ -2295,15 +2295,8 @@ void 
cmGlobalGenerator::CreateDefaultGlobalTargets(cmTargets* targets)
       std::ostringstream ostr;
       if (!componentsSet->empty())
         {
-        ostr << "Available install components are:";
-        std::set<std::string>::iterator it;
-        for (
-          it = componentsSet->begin();
-          it != componentsSet->end();
-          ++ it )
-          {
-          ostr << " \"" << *it << "\"";
-          }
+        ostr << "Available install components are: ";
+        ostr << cmWrap('"', *componentsSet, '"', " ");
         }
       else
         {
diff --git a/Source/cmLocalUnixMakefileGenerator3.cxx 
b/Source/cmLocalUnixMakefileGenerator3.cxx
index 68657ad..432cb3a 100644
--- a/Source/cmLocalUnixMakefileGenerator3.cxx
+++ b/Source/cmLocalUnixMakefileGenerator3.cxx
@@ -724,12 +724,7 @@ cmLocalUnixMakefileGenerator3
     }
 
   // Write the list of commands.
-  for(std::vector<std::string>::const_iterator i = commands.begin();
-      i != commands.end(); ++i)
-    {
-    replace = *i;
-    os << "\t" << replace << "\n";
-    }
+  os << cmWrap("\t", commands, "", "\n") << "\n";
   if(symbolic && !this->WatcomWMake)
     {
     os << ".PHONY : " << cmMakeSafe(tgt) << "\n";
diff --git a/Source/cmSystemTools.cxx b/Source/cmSystemTools.cxx
index bf496e9..5264123 100644
--- a/Source/cmSystemTools.cxx
+++ b/Source/cmSystemTools.cxx
@@ -835,7 +835,7 @@ cmSystemTools::PrintSingleCommand(std::vector<std::string> 
const& command)
     return std::string();
     }
 
-  return "\"" + cmJoin(command, "\" \"") + "\"";
+  return cmWrap('"', command, '"', " ");
 }
 
 bool cmSystemTools::DoesFileExistWithExtensions(
diff --git a/Source/cmcmd.cxx b/Source/cmcmd.cxx
index eb637ef..7d67bd8 100644
--- a/Source/cmcmd.cxx
+++ b/Source/cmcmd.cxx
@@ -450,9 +450,7 @@ int cmcmd::ExecuteCMakeCommand(std::vector<std::string>& 
args)
         return 1;
         }
 
-      std::string command = "\"";
-      command += cmJoin(cmRange(args).advance(3), "\" \"");
-      command += "\"";
+      std::string command = cmWrap('"', cmRange(args).advance(3), '"', " ");
       int retval = 0;
       int timeout = 0;
       if ( cmSystemTools::RunSingleCommand(command.c_str(), 0, &retval,

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a281809384cc19cc9a7d1726b243020b380b9395
commit a281809384cc19cc9a7d1726b243020b380b9395
Author:     Stephen Kelly <steve...@gmail.com>
AuthorDate: Thu Feb 12 20:53:43 2015 +0100
Commit:     Stephen Kelly <steve...@gmail.com>
CommitDate: Fri Feb 20 21:26:18 2015 +0100

    Use cmJoin where possible.

diff --git a/Source/cmCoreTryCompile.cxx b/Source/cmCoreTryCompile.cxx
index 8e20c14..bcd2d81 100644
--- a/Source/cmCoreTryCompile.cxx
+++ b/Source/cmCoreTryCompile.cxx
@@ -260,14 +260,10 @@ int 
cmCoreTryCompile::TryCompileCode(std::vector<std::string> const& argv)
         err << "Unknown extension \"" << ext << "\" for file\n"
             << "  " << *si << "\n"
             << "try_compile() works only for enabled languages.  "
-            << "Currently these are:\n ";
+            << "Currently these are:\n  ";
         std::vector<std::string> langs;
         gg->GetEnabledLanguages(langs);
-        for(std::vector<std::string>::iterator l = langs.begin();
-            l != langs.end(); ++l)
-          {
-          err << " " << *l;
-          }
+        err << cmJoin(langs, " ");
         err << "\nSee project() command to enable other languages.";
         this->Makefile->IssueMessage(cmake::FATAL_ERROR, err.str());
         return -1;
@@ -373,12 +369,7 @@ int 
cmCoreTryCompile::TryCompileCode(std::vector<std::string> const& argv)
     // handle any compile flags we need to pass on
     if (!compileDefs.empty())
       {
-      fprintf(fout, "add_definitions( ");
-      for (size_t i = 0; i < compileDefs.size(); ++i)
-        {
-        fprintf(fout,"%s ",compileDefs[i].c_str());
-        }
-      fprintf(fout, ")\n");
+      fprintf(fout, "add_definitions(%s)\n", cmJoin(compileDefs, " ").c_str());
       }
 
     /* Use a random file name to avoid rapid creation and deletion
diff --git a/Source/cmFindBase.cxx b/Source/cmFindBase.cxx
index 6e55533..fd3aa0b 100644
--- a/Source/cmFindBase.cxx
+++ b/Source/cmFindBase.cxx
@@ -350,19 +350,10 @@ void cmFindBase::PrintFindStuff()
   std::cerr << "NoCMakeSystemPath " << this->NoCMakeSystemPath << "\n";
   std::cerr << "EnvironmentPath " << this->EnvironmentPath << "\n";
   std::cerr << "CMakePathName " << this->CMakePathName << "\n";
-  std::cerr << "Names  ";
-  for(unsigned int i =0; i < this->Names.size(); ++i)
-    {
-    std::cerr << this->Names[i] << " ";
-    }
-  std::cerr << "\n";
+  std::cerr << "Names  " << cmJoin(this->Names, " ") << "\n";
   std::cerr << "\n";
   std::cerr << "SearchPathSuffixes  ";
-  for(unsigned int i =0; i < this->SearchPathSuffixes.size(); ++i)
-    {
-    std::cerr << this->SearchPathSuffixes[i] << "\n";
-    }
-  std::cerr << "\n";
+  std::cerr << cmJoin(this->SearchPathSuffixes, "\n") << "\n";
   std::cerr << "SearchPaths\n";
   for(std::vector<std::string>::const_iterator i = this->SearchPaths.begin();
       i != this->SearchPaths.end(); ++i)
diff --git a/Source/cmLocalUnixMakefileGenerator3.cxx 
b/Source/cmLocalUnixMakefileGenerator3.cxx
index c275e6b..68657ad 100644
--- a/Source/cmLocalUnixMakefileGenerator3.cxx
+++ b/Source/cmLocalUnixMakefileGenerator3.cxx
@@ -1330,13 +1330,7 @@ cmLocalUnixMakefileGenerator3
                       this->Makefile->GetSafeDefinition("CMAKE_BUILD_TYPE"));
     fout << "\n"
          << "# Per-language clean rules from dependency scanning.\n"
-         << "foreach(lang";
-    for(std::set<std::string>::const_iterator l = languages.begin();
-        l != languages.end(); ++l)
-      {
-      fout << " " << *l;
-      }
-    fout << ")\n"
+         << "foreach(lang " << cmJoin(languages, " ") << ")\n"
          << "  include(" << this->GetTargetDirectory(target)
          << "/cmake_clean_${lang}.cmake OPTIONAL)\n"
          << "endforeach()\n";
diff --git a/Source/cmcmd.cxx b/Source/cmcmd.cxx
index 6a7dc6e..eb637ef 100644
--- a/Source/cmcmd.cxx
+++ b/Source/cmcmd.cxx
@@ -213,27 +213,14 @@ int cmcmd::ExecuteCMakeCommand(std::vector<std::string>& 
args)
     // Echo string
     else if (args[1] == "echo" )
       {
-      unsigned int cc;
-      const char* space = "";
-      for ( cc = 2; cc < args.size(); cc ++ )
-        {
-        std::cout << space << args[cc];
-        space = " ";
-        }
-      std::cout << std::endl;
+      std::cout << cmJoin(cmRange(args).advance(2), " ") << std::endl;
       return 0;
       }
 
     // Echo string no new line
     else if (args[1] == "echo_append" )
       {
-      unsigned int cc;
-      const char* space = "";
-      for ( cc = 2; cc < args.size(); cc ++ )
-        {
-        std::cout << space << args[cc];
-        space = " ";
-        }
+      std::cout << cmJoin(cmRange(args).advance(2), " ");
       return 0;
       }
 
@@ -1329,12 +1316,7 @@ bool cmcmd::RunCommand(const char* comment,
   if(verbose)
     {
     std::cout << comment << ":\n";
-    for(std::vector<std::string>::iterator i = command.begin();
-        i != command.end(); ++i)
-      {
-      std::cout << *i << " ";
-      }
-    std::cout << "\n";
+    std::cout << cmJoin(command, " ") << "\n";
     }
   std::string output;
   int retCode =0;

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=76207b0861478318115d65c2e983f4d88c937724
commit 76207b0861478318115d65c2e983f4d88c937724
Author:     Stephen Kelly <steve...@gmail.com>
AuthorDate: Mon Feb 9 19:50:09 2015 +0100
Commit:     Stephen Kelly <steve...@gmail.com>
CommitDate: Fri Feb 20 21:26:18 2015 +0100

    cmCacheManager: Replace loop with algorithm.

diff --git a/Source/cmCacheManager.cxx b/Source/cmCacheManager.cxx
index 45e92ce..0c77891 100644
--- a/Source/cmCacheManager.cxx
+++ b/Source/cmCacheManager.cxx
@@ -186,11 +186,7 @@ void cmCacheManager::CleanCMakeFiles(const std::string& 
path)
   cmsys::Glob globIt;
   globIt.FindFiles(glob);
   std::vector<std::string> files = globIt.GetFiles();
-  for(std::vector<std::string>::iterator i = files.begin();
-      i != files.end(); ++i)
-    {
-    cmSystemTools::RemoveFile(*i);
-    }
+  std::for_each(files.begin(), files.end(), cmSystemTools::RemoveFile);
 }
 
 bool cmCacheManager::LoadCache(const std::string& path,

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=60c3bb73e39f7b19a17c989a0f9bf70bbfe73683
commit 60c3bb73e39f7b19a17c989a0f9bf70bbfe73683
Author:     Stephen Kelly <steve...@gmail.com>
AuthorDate: Thu Feb 12 22:29:11 2015 +0100
Commit:     Stephen Kelly <steve...@gmail.com>
CommitDate: Fri Feb 20 21:26:18 2015 +0100

    cmGlobalGenerator: Replace loop with algorithm.

diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx
index c976c69..ac4489a 100644
--- a/Source/cmGlobalGenerator.cxx
+++ b/Source/cmGlobalGenerator.cxx
@@ -2571,17 +2571,12 @@ bool cmGlobalGenerator::IsReservedTarget(std::string 
const& name)
     "test", "RUN_TESTS",
     "package", "PACKAGE",
     "package_source",
-    "ZERO_CHECK",
-    0
+    "ZERO_CHECK"
   };
 
-  for(const char** reservedTarget = reservedTargets;
-    *reservedTarget; ++reservedTarget)
-    {
-    if(name == *reservedTarget) return true;
-    }
-
-  return false;
+  return std::find(cmArrayBegin(reservedTargets),
+                   cmArrayEnd(reservedTargets), name)
+      != cmArrayEnd(reservedTargets);
 }
 
 void cmGlobalGenerator::SetExternalMakefileProjectGenerator(

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=05fec779d33b872721b9731e872125ebeb89403b
commit 05fec779d33b872721b9731e872125ebeb89403b
Author:     Stephen Kelly <steve...@gmail.com>
AuthorDate: Sun Feb 15 13:40:56 2015 +0100
Commit:     Stephen Kelly <steve...@gmail.com>
CommitDate: Fri Feb 20 21:26:17 2015 +0100

    cmTarget: Port loop to algorithm.

diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index 1ad0d48..ebcd810 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -1542,12 +1542,9 @@ void cmTarget::DeleteDependencyForVS6( DependencyMap& 
depMap,
   if( map_itr != depMap.end() )
     {
     DependencyList& depList = map_itr->second;
-    DependencyList::iterator itr;
-    while( (itr = std::find(depList.begin(), depList.end(), dep)) !=
-           depList.end() )
-      {
-      depList.erase( itr );
-      }
+    DependencyList::iterator begin =
+        std::remove(depList.begin(), depList.end(), dep);
+    depList.erase(begin, depList.end());
     }
 }
 

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

Summary of changes:


hooks/post-receive
-- 
CMake
_______________________________________________
Cmake-commits mailing list
Cmake-commits@cmake.org
http://public.kitware.com/mailman/listinfo/cmake-commits

Reply via email to