summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Merge topic 'cmListCommand-algorithms'Brad King2015-02-162-88/+123
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 116459d3 cmListCommand: Avoid needlessly erasing from vectors. 1c7c35c3 cmListCommand: Replace remove duplicates loop with algorithm. cebeed24 cmAlgorithms: Add cmRemoveDuplicates algorithm. 3cfe7a4c cmListCommand: Implement REMOVE_ITEM in terms of cmRemoveMatching. 050958a3 cmAlgorithms: Add cmRemoveMatching algorithm. a77af8f1 cmListCommand: Replace joining loop with cmJoin algorithm. 6a22e401 cmListCommand: Use cmRemoveIndices for REMOVE_AT subcommand. 0b5cf0da cmAlgorithms: Implement algorithm for removing indexes. 069f2440 cmListCommand: Convert loop to find algorithm. 67a26764 cmListCommand: Implement REVERSE subcommand with std::reverse. 1cecd3a5 cmListCommand: Use std::find algorithm for FIND subcommand.
| * cmListCommand: Avoid needlessly erasing from vectors.Stephen Kelly2015-02-151-17/+21
| | | | | | | | | | | | The entire vector will be destroyed at once at the end of the scope, and the remove algorithms already give us the end of the range of interesting values, so just use those sentinals.
| * cmListCommand: Replace remove duplicates loop with algorithm.Stephen Kelly2015-02-151-18/+3
| |
| * cmAlgorithms: Add cmRemoveDuplicates algorithm.Stephen Kelly2015-02-151-0/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Start by creating a vector to hold a unique values of the input range. We expect that in most cases, there will be relatively few duplicates, so reserving enough memory for a complete copy is worthwhile. Unlike a solution involving a std::set, this algorithm allocates all the memory it needs in one go and in one place, so it is more cache friendly. Populate the unique copy with a lower_bound insert algorithm and record the indices of duplicates. This is the same complexity as the std::set insert algorithm, but without the need to allocate memory on the heap and other disadvantages of std::set. Remove the duplicates with the cmRemoveIndices algorithm.
| * cmListCommand: Implement REMOVE_ITEM in terms of cmRemoveMatching.Stephen Kelly2015-02-151-16/+6
| |
| * cmAlgorithms: Add cmRemoveMatching algorithm.Stephen Kelly2015-02-151-0/+24
| | | | | | | | | | Implement it in terms of std::remove_if with a binary search through a matching range.
| * cmListCommand: Replace joining loop with cmJoin algorithm.Stephen Kelly2015-02-151-8/+2
| |
| * cmListCommand: Use cmRemoveIndices for REMOVE_AT subcommand.Stephen Kelly2015-02-151-16/+9
| | | | | | | | | | Avoid repeatedly looping over the indices to process elements (even without breaking out of the loop when the element is found).
| * cmAlgorithms: Implement algorithm for removing indexes.Stephen Kelly2015-02-151-0/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implement ContainerAlgorithms::RemoveN to remove N elements to the end of a container by rotating. The rotate is implemented in terms of the efficient swap algorithm, optimized even more in the standard library implementation when the compiler supports the rvalue-references feature to move elements. Implement cmRemoveN with a Range API for completeness. std::rotate in C++11 is specified to return an iterator, but c++98 specifies it to return void. libstdc++ 5.0 will be the first version to have the correct return type. Implement ContainerAlgorithms::Rotate in terms of std::rotate and return the correct iterator from it. While std::rotate requires forward iterators, this workaround means cmRotate requires bidirectional iterators. As most of CMake uses random access iterators anyway, this should not be a problem. Implement cmRemoveIndices in terms of the RemoveN algorithm, such that each element which is not removed is rotated only once. This can not use the cmRemoveN range-API algorithm because that would require creating a new range, but the range must be taken by reference and so it can't be a temporary. These remove algorithms are not part of the STL and I couldn't find them anywhere else either.
| * cmListCommand: Convert loop to find algorithm.Stephen Kelly2015-02-151-12/+1
| |
| * cmListCommand: Implement REVERSE subcommand with std::reverse.Stephen Kelly2015-02-151-9/+2
| |
| * cmListCommand: Use std::find algorithm for FIND subcommand.Stephen Kelly2015-02-151-11/+7
| | | | | | | | | | | | Use a ostringstream to account for the input being a variable of type size_t as a result of using std::distance. There is no single format string which portably accepts a size_t.
* | Merge topic 'test-rpmbuild-cleanup'Brad King2015-02-162-11/+16
|\ \ | | | | | | | | | | | | d891d474 Tests: Consolidate detection of 'rpmbuild'
| * | Tests: Consolidate detection of 'rpmbuild'Brad King2015-02-132-11/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | Several tests use slight variations of the same logic to enable CPack RPM tests. Consolidate this logic into one check before any tests are added. Look for 'rpmbuild' only on Linux and only when the test build tree does not have spaces in the path. In particular, this will make the result available in time for the RunCMake.CPackRPM test to be activated even if CMake is configured exactly once.
* | | Merge topic 'wix-product-fragment'Brad King2015-02-164-3/+21
|\ \ \ | | | | | | | | | | | | | | | | a2ccbffd CPackWIX: Extend the patching mechanism to allow adding content to <Product>.
| * | | CPackWIX: Extend the patching mechanism to allow adding content to <Product>.Nils Gladitz2015-02-134-3/+21
| | | |
* | | | CMake Nightly Date StampKitware Robot2015-02-161-1/+1
| | | |
* | | | CMake Nightly Date StampKitware Robot2015-02-151-1/+1
| | | |
* | | | CMake Nightly Date StampKitware Robot2015-02-141-1/+1
| |_|/ |/| |
* | | Merge branch 'release'Brad King2015-02-130-0/+0
|\ \ \
| * \ \ Merge branch 'doc-3.2-relnotes-fixup' into releaseBrad King2015-02-131-6/+6
| |\ \ \
| * \ \ \ Merge branch 'doc-configure_file-output-location' into releaseBrad King2015-02-121-30/+95
| |\ \ \ \
* | \ \ \ \ Merge topic 'doc-3.2-relnotes-fixup'Brad King2015-02-131-6/+6
|\ \ \ \ \ \ | | |_|/ / / | |/| | | / | |_|_|_|/ |/| | | | 6d19ef9b Help: In 3.2 relnotes move OpenGL/X11 to deprecated/removed section
| * | | | Help: In 3.2 relnotes move OpenGL/X11 to deprecated/removed sectionBrad King2015-02-131-6/+6
| | | | | | | | | | | | | | | | | | | | It is a possibly incompatible change.
* | | | | Merge topic 'doc-configure_file-output-location'Brad King2015-02-131-30/+95
|\ \ \ \ \ | | |_|/ / | |/| | | | | | | | | | | | | 029d38fa Help: Revise configure_file documentation (#15403)
| * | | | Help: Revise configure_file documentation (#15403)Brad King2015-02-121-30/+95
| |/ / / | | | | | | | | | | | | | | | | | | | | Format the documentation with better reST markup. Revise the wording to clarify how relative paths are handled. Also add an example section.
* | | | Merge topic 'clean-up-cmFunctionCommand'Brad King2015-02-131-21/+4
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 78757e7f cmFunctionCommand: Replace loops with cmJoin. fc1cf265 cmFunctionCommand: Remove counting variable. e5ebeae7 cmFunctionCommand: Split loop in two.
| * | | | cmFunctionCommand: Replace loops with cmJoin.Stephen Kelly2015-02-121-19/+4
| | | | |
| * | | | cmFunctionCommand: Remove counting variable.Stephen Kelly2015-02-121-9/+5
| | | | | | | | | | | | | | | | | | | | Start iteration at correct starting point directly.
| * | | | cmFunctionCommand: Split loop in two.Stephen Kelly2015-02-121-2/+4
| | | | |
* | | | | Merge topic 'xcode-attribute-genex'Brad King2015-02-139-1/+39
|\ \ \ \ \ | |_|_|_|/ |/| | | | | | | | | | | | | | bf8f9c29 Xcode: Teach XCODE_ATTRIBUTE target properties about generator expressions
| * | | | Xcode: Teach XCODE_ATTRIBUTE target properties about generator expressionsGregor Jasny2015-02-129-1/+39
| |/ / / | | | | | | | | | | | | Signed-off-by: Gregor Jasny <gjasny@googlemail.com>
* | | | CMake Nightly Date StampKitware Robot2015-02-131-1/+1
|/ / /
* | | Merge branch 'release'Brad King2015-02-120-0/+0
|\ \ \ | | |/ | |/|
| * | Merge branch 'cpack_rpm_mulit_prefix_fixup' into releasev3.2.0-rc1Brad King2015-02-111-1/+6
| |\ \
| * \ \ Merge branch 'FindCoin3D-drop-link' into releaseBrad King2015-02-111-2/+1
| |\ \ \
* | \ \ \ Merge branch 'release-3.1'Brad King2015-02-120-0/+0
|\ \ \ \ \
| * | | | | CMake 3.1.3v3.1.3Brad King2015-02-111-1/+1
| | | | | |
* | | | | | Merge topic 'clean-up-cmMacroCommand'Brad King2015-02-121-61/+32
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | b5f98e50 cmMacroCommand: Manipulate target string directly. 83414d5a cmMacroCommand: Move computation of ARGV%n names out of double loop. 9a1f8f35 cmMacroCommand: Move ARGV replacement out of condition. 4aa7bd2a cmMacroCommand: Remove condition around ARGN replacement. 6774c92b cmMacroCommand: Declare tmps in the scope that it's used. 2c4a7298 cmMacroCommand: Declare arg in the scope that it is used. a551851a cmMacroCommand: Inline variable computation. f79c0f76 cmMacroCommand: Compute variables outside of two loops. 8e0827b6 cmMacroCommand: Remove intermediate arg variables. f2c49f59 cmMacroCommand: Remove condition around ARGN computation. 3250a7e5 cmMacroCommand: Remove conditional append of semicolon. 081a13f7 cmMacroCommand: Declare arg variables where used and initialized. 17b5ebd3 cmMacroCommand: Join the args strings outside of the loops.
| * | | | | | cmMacroCommand: Manipulate target string directly.Stephen Kelly2015-02-111-14/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Avoid copying a string from the source, manipulating it, and then copying it back. Manipulate it in place instead.
| * | | | | | cmMacroCommand: Move computation of ARGV%n names out of double loop.Stephen Kelly2015-02-111-4/+9
| | | | | | |
| * | | | | | cmMacroCommand: Move ARGV replacement out of condition.Stephen Kelly2015-02-111-2/+1
| | | | | | |
| * | | | | | cmMacroCommand: Remove condition around ARGN replacement.Stephen Kelly2015-02-111-5/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is none for ARGC replacement, so no reason to conditionalize the replacement. The computation is already done.
| * | | | | | cmMacroCommand: Declare tmps in the scope that it's used.Stephen Kelly2015-02-111-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We don't particularly need to reuse the string memory here, and this pattern is not common in CMake.
| * | | | | | cmMacroCommand: Declare arg in the scope that it is used.Stephen Kelly2015-02-111-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It can make sense to declare objects outside of loops if the size required by the object can grow (eg std::string when using getline), but that is not the case here.
| * | | | | | cmMacroCommand: Inline variable computation.Stephen Kelly2015-02-111-5/+1
| | | | | | |
| * | | | | | cmMacroCommand: Compute variables outside of two loops.Stephen Kelly2015-02-111-6/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Avoid computing them from scratch for each argument of each function.
| * | | | | | cmMacroCommand: Remove intermediate arg variables.Stephen Kelly2015-02-111-7/+2
| | | | | | |
| * | | | | | cmMacroCommand: Remove condition around ARGN computation.Stephen Kelly2015-02-111-4/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | An empty string is appended if the condition is false, which is ok for this commit.
| * | | | | | cmMacroCommand: Remove conditional append of semicolon.Stephen Kelly2015-02-111-8/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The conditions are never true.