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