Stephen Kelly
b5f98e5012
cmMacroCommand: Manipulate target string directly.
...
Avoid copying a string from the source, manipulating it, and then
copying it back. Manipulate it in place instead.
2015-02-11 22:58:34 +01:00
Stephen Kelly
83414d5a07
cmMacroCommand: Move computation of ARGV%n names out of double loop.
2015-02-11 22:58:34 +01:00
Stephen Kelly
9a1f8f35f4
cmMacroCommand: Move ARGV replacement out of condition.
2015-02-11 22:58:34 +01:00
Stephen Kelly
4aa7bd2ac1
cmMacroCommand: Remove condition around ARGN replacement.
...
There is none for ARGC replacement, so no reason to conditionalize the
replacement. The computation is already done.
2015-02-11 22:58:34 +01:00
Stephen Kelly
6774c92b58
cmMacroCommand: Declare tmps in the scope that it's used.
...
We don't particularly need to reuse the string memory here, and this
pattern is not common in CMake.
2015-02-11 22:58:34 +01:00
Stephen Kelly
2c4a7298fc
cmMacroCommand: Declare arg in the scope that it is used.
...
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.
2015-02-11 22:58:34 +01:00
Stephen Kelly
a551851ab3
cmMacroCommand: Inline variable computation.
2015-02-11 22:58:33 +01:00
Stephen Kelly
f79c0f7697
cmMacroCommand: Compute variables outside of two loops.
...
Avoid computing them from scratch for each argument of each
function.
2015-02-11 22:58:33 +01:00
Stephen Kelly
8e0827b646
cmMacroCommand: Remove intermediate arg variables.
2015-02-11 22:58:33 +01:00
Stephen Kelly
f2c49f59d8
cmMacroCommand: Remove condition around ARGN computation.
...
An empty string is appended if the condition is false, which is
ok for this commit.
2015-02-11 22:58:33 +01:00
Stephen Kelly
3250a7e535
cmMacroCommand: Remove conditional append of semicolon.
...
The conditions are never true.
2015-02-11 22:58:33 +01:00
Stephen Kelly
081a13f7c0
cmMacroCommand: Declare arg variables where used and initialized.
...
Make the initialization by population with the expanded* content
unconditional.
2015-02-11 22:58:33 +01:00
Stephen Kelly
17b5ebd383
cmMacroCommand: Join the args strings outside of the loops.
...
This means that we compute the strings even if not used in the macro
but this shouldn't be expensive and it simplifies the code.
2015-02-11 22:58:31 +01:00
Stephen Kelly
7c3f637680
Convert loop into two algorithms.
2015-02-11 22:58:09 +01:00
Stephen Kelly
8a399c8c9f
Convert loop to the common pattern.
2015-02-11 22:58:09 +01:00
Stephen Kelly
abfca97525
Move loop inside of condition.
...
The loop is only executed if the condition is true.
2015-02-11 22:58:09 +01:00
Stephen Kelly
0b61b86df8
Handle last element outside of the loop.
...
There is no point in checking on each loop iteration whether
it is the last element.
2015-02-11 22:58:08 +01:00
Stephen Kelly
e21f7829a2
cmTarget: Use a sorted vector in place of a set.
...
The vector has a more easy-to-use API.
Join the string with cmJoin, and avoid erasing from the container
in the loop.
2015-02-11 22:58:08 +01:00
Stephen Kelly
559dc15589
cmSet: Replace loop with cmJoin.
2015-02-11 22:58:08 +01:00
Stephen Kelly
0ea719326e
cmFindBase: Replace loop with cmJoin on range.
2015-02-11 22:58:08 +01:00
Stephen Kelly
9380e85f86
Convert loops to cmJoin algorithm with cmRange.
2015-02-11 22:58:04 +01:00
Stephen Kelly
bb10012fea
cmStringCommand: Accumulate with cmJoin and range adaptors.
2015-02-11 22:57:56 +01:00
Stephen Kelly
0c12f1ea0d
cmAlgorithms: Add a range adaptor and API for adjusting a range.
2015-02-11 22:57:55 +01:00
Stephen Kelly
27c6f017a1
Use cmJoin to accumulate string ranges.
...
Avoid using the std::accumulate algorithm which is designed for
numeric types, not complex types. It introduces unneccessary
copies.
Initialize variables where they are populated.
2015-02-11 22:57:55 +01:00
Stephen Kelly
4e78ebbdf9
cmAlgorithms: Add a Range container and adaptor method.
...
This can make a pair of iterators API compatible with the
cmJoin algorithm and other range-based algorithms.
Accept different iterator types in the cmRange adaptor so that
a const and non-const iterator are accepted.
2015-02-11 22:57:55 +01:00
Stephen Kelly
8910224950
Replace common loop pattern with cmJoin
2015-02-11 22:57:55 +01:00
Stephen Kelly
7b8725bf84
Convert loops populating maybe-empty content into the common pattern.
2015-02-11 22:57:53 +01:00
Stephen Kelly
7ee56f0399
Convert loops into the commonly used pattern.
2015-02-11 22:57:41 +01:00
Stephen Kelly
0a4e5674ec
cmMacroCommand: Remove counting variable.
...
Start iteration at correct starting point directly.
2015-02-11 22:57:38 +01:00
Brad King
f30022eb07
install: Allow generator expressions in TARGETS DESTINATION ( #14317 )
...
This will allow per-config destinations for targets in EXPORT sets.
Using multiple install(TARGETS) with separate CONFIGURATIONS is
rejected as a target appearing more than once in an export set.
Now instead one can write
install(TARGETS foo EXPORT exp DESTINATION lib/$<CONFIG>)
to get a single logical membership of the target in the export set
while still having a per-config destination.
2015-02-11 15:15:33 -05:00
Brad King
7607c3d16a
cmInstallGenerator: Pass destination explicitly to AddInstallRule
...
This will allow specific invocations to transform the destination
before AddInstallRule uses it.
2015-02-11 15:14:01 -05:00
Brad King
ebd556caa9
cmInstallGenerator: Fix check for absolute install destinations
...
In AddInstallRule, check for absolute install destinations before
converting to the absolute install destination. Previously this
worked only by accident because literal "${CMAKE_INSTALL_PREFIX}"
looks like a relative path.
2015-02-11 15:13:57 -05:00
Brad King
290ca8e2d0
cmInstallGenerator: Refactor computation of absolute install dest
...
Replace the GetInstallDestination method, which looked up the
Destination ivar, with a new ConvertToAbsoluteDestination method that
takes the nominal destination as an argument. Update call sites
accordingly. This will allow some clients to transform the install
destination before calling the method.
2015-02-11 15:12:16 -05:00
Brad King
f99991db88
cmInstallGenerator: Move GetDestination to subclasses that need it
...
The method is used only for EXPORT and TARGET install destinations.
While at it, make it return a std::string by reference instead of a
"const char*".
2015-02-11 15:05:57 -05:00
Stephen Kelly
11ecc31d0a
cmMacroCommand: Execute loop only if it has an effect.
2015-02-11 20:51:06 +01:00
Stephen Kelly
f95543f8a6
cmMacroCommand: Extract iteration starting point.
2015-02-11 20:51:06 +01:00
Stephen Kelly
9fe8f49353
cmMacroCommand: Replace a loop with cmJoin.
2015-02-11 20:51:06 +01:00
Brad King
da92cdab52
Merge branch 'cpack_rpm_mulit_prefix_fixup' into release
2015-02-11 11:08:37 -05:00
Brad King
a4568ca597
Merge branch 'FindCoin3D-drop-link' into release
2015-02-11 11:08:32 -05:00
Brad King
e2a8984c06
FindCoin3D: Drop link to project homepage
...
The project has moved from <http://www.coin3d.org/ > to
<https://bitbucket.org/Coin3D/coin/wiki/Home >. Simply drop the
out-dated link. Few find modules have links to the project sites.
Anyone looking to use a given find module likely already knows about the
project it finds and can use a search engine to find its homepage.
2015-02-11 11:05:55 -05:00
Brad King
bd6389f7bc
CMake 3.1.3
2015-02-11 10:23:38 -05:00
Brad King
f00829a938
Merge branch 'release'
2015-02-11 10:22:08 -05:00
Brad King
d891b971b7
Merge branch 'release-3.1'
2015-02-11 10:22:04 -05:00
Brad King
108e94ecf1
Merge topic 'export-interface-source-files'
...
f7e33820
Add release notes for export-interface-source-files.
6da65b39
Allow export of targets with INTERFACE_SOURCES.
736bcb96
Tests: Move IfacePaths test stderr files.
d9f8390d
Tests: Run IfacePaths tests with a parameter.
cc152094
Tests: Split part of include_directories test to a generic location.
2015-02-11 09:59:30 -05:00
Brad King
c1772e5fb2
Merge topic 'fix_timeout_docs'
...
56cb4a6c
Help: Fix variable reference in TIMEOUT test property docs
2015-02-11 09:59:28 -05:00
Brad King
79ea7e6d08
Merge topic 'BundleUtilities-install_name_tool-exit'
...
a27c13f4
BundleUtilities: Teach fixup_bundle to check install_name_tool result
2015-02-11 09:59:26 -05:00
Brad King
f3c0c61403
Merge topic 'bootstrap-sphinx-qthelp'
...
85fd62ee
bootstrap: Add --sphinx-qthelp option to enable qthelp doc generation
2015-02-11 09:59:24 -05:00
Brad King
dcc5de9c4b
Merge topic 'FindRuby-windows-x64'
...
e5ef9271
FindRuby: Fix finding 64-bit Ruby on Windows
2015-02-11 09:59:22 -05:00
Brad King
0e6af85263
Merge topic 'try_compile-shorter-names'
...
f3e9eeed
try_compile: Use shorter test executable name with consistent length
2015-02-11 09:59:20 -05:00
Brad King
939167a65c
Merge topic 'makefile-missing-comment'
...
eeb2831b
Makefile: Fix regression in target-bound custom command COMMENT output
2015-02-11 09:59:18 -05:00