Commit Graph

17557 Commits

Author SHA1 Message Date
Brad King d6616181c8 Merge topic 'clean-up-cmFunctionCommand'
78757e7f cmFunctionCommand: Replace loops with cmJoin.
fc1cf265 cmFunctionCommand: Remove counting variable.
e5ebeae7 cmFunctionCommand: Split loop in two.
2015-02-13 11:03:00 -05:00
Brad King cc90fd58ec Merge topic 'xcode-attribute-genex'
bf8f9c29 Xcode: Teach XCODE_ATTRIBUTE target properties about generator expressions
2015-02-13 11:02:58 -05:00
Kitware Robot 8d38ff05e2 CMake Nightly Date Stamp 2015-02-13 00:01:16 -05:00
Stephen Kelly 78757e7ffc cmFunctionCommand: Replace loops with cmJoin. 2015-02-12 20:25:21 +01:00
Stephen Kelly fc1cf2654d cmFunctionCommand: Remove counting variable.
Start iteration at correct starting point directly.
2015-02-12 20:25:21 +01:00
Stephen Kelly e5ebeae768 cmFunctionCommand: Split loop in two. 2015-02-12 20:25:20 +01:00
Gregor Jasny bf8f9c29e7 Xcode: Teach XCODE_ATTRIBUTE target properties about generator expressions
Signed-off-by: Gregor Jasny <gjasny@googlemail.com>
2015-02-12 13:35:31 -05:00
Brad King 32821bb319 Merge topic 'clean-up-cmMacroCommand'
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.
2015-02-12 11:53:11 -05:00
Brad King e6ae3c6ae0 Merge topic 'use-cmRange'
7c3f6376 Convert loop into two algorithms.
8a399c8c Convert loop to the common pattern.
abfca975 Move loop inside of condition.
0b61b86d Handle last element outside of the loop.
e21f7829 cmTarget: Use a sorted vector in place of a set.
559dc155 cmSet: Replace loop with cmJoin.
0ea71932 cmFindBase: Replace loop with cmJoin on range.
9380e85f Convert loops to cmJoin algorithm with cmRange.
bb10012f cmStringCommand: Accumulate with cmJoin and range adaptors.
0c12f1ea cmAlgorithms: Add a range adaptor and API for adjusting a range.
27c6f017 Use cmJoin to accumulate string ranges.
4e78ebbd cmAlgorithms: Add a Range container and adaptor method.
89102249 Replace common loop pattern with cmJoin
7b8725bf Convert loops populating maybe-empty content into the common pattern.
7ee56f03 Convert loops into the commonly used pattern.
0a4e5674 cmMacroCommand: Remove counting variable.
...
2015-02-12 11:53:04 -05:00
Brad King fc7e15691a Merge topic 'install-DESTINATION-genex'
f30022eb install: Allow generator expressions in TARGETS DESTINATION (#14317)
7607c3d1 cmInstallGenerator: Pass destination explicitly to AddInstallRule
ebd556ca cmInstallGenerator: Fix check for absolute install destinations
290ca8e2 cmInstallGenerator: Refactor computation of absolute install dest
f99991db cmInstallGenerator: Move GetDestination to subclasses that need it
2015-02-12 11:53:02 -05:00
Kitware Robot 09cdcc5430 CMake Nightly Date Stamp 2015-02-12 00:01:15 -05:00
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 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 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