Commit Graph

27608 Commits

Author SHA1 Message Date
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
Domen Vrankar be36bfd65d CPackRPM: Do not run file(GLOB_RECURSE) without CMP0009 set to NEW
The file(GLOB_RECURSE) call added by commit 3ec02547 (CPackRPM: Allow
multiple path relocation prefixes for one package, 2015-01-21) should
not follow directory symlinks, so make sure CMP0009 is set to NEW.
2015-02-11 09:56:27 -05:00
Kitware Robot 1979330188 CMake Nightly Date Stamp 2015-02-11 00:01:09 -05:00
Stephen Kelly f7e33820b6 Add release notes for export-interface-source-files. 2015-02-11 00:51:35 +01:00
Stephen Kelly 6da65b3907 Allow export of targets with INTERFACE_SOURCES.
Use the same rules for paths in source and binary dirs in
installed INTERFACE_SOURCES as are used for
INTERFACE_INCLUDE_DIRECTORIES.
2015-02-11 00:51:34 +01:00
Stephen Kelly 736bcb9664 Tests: Move IfacePaths test stderr files.
Rename the files with a property-specific name, so that additional
properties can be easily tested.
2015-02-11 00:51:30 +01:00
Stephen Kelly ac26d4b343 Split cmAlgorithms into a separate header file. 2015-02-10 22:14:18 +01:00
Brad King 0a95c5ce2e Merge branch 'fix_timeout_docs' into release 2015-02-10 12:59:32 -05:00
Zack Galbreath 56cb4a6c3a Help: Fix variable reference in TIMEOUT test property docs
Link to 'CTEST_TEST_TIMEOUT', not 'CTEST_TESTING_TIMEOUT'.
2015-02-10 12:58:01 -05:00
Brad King cbffbf7437 Merge topic 'cmStandardIncludes-cleanup'
af65da0a cmStandardIncludes: Remove list include.
e848cc50 cmStandardIncludes: Remove deque include.
5fea6898 cmStandardIncludes: Remove some VS6 workarounds.
2015-02-10 12:56:08 -05:00
Ruslan Baratov a27c13f4ca BundleUtilities: Teach fixup_bundle to check install_name_tool result
Fail explicitly if install_name_tool fails to make an update we need.
2015-02-10 11:00:27 -05:00
Brad King f3e9eeedf4 try_compile: Use shorter test executable name with consistent length
Since commit v2.8.8~176^2 (try_compile: Use random executable file name,
2012-02-13) the length of the test executable name in generated
try_compile projects has been longer and unpredictable.  With Visual
Studio on windows, the tools try to create paths like:

 CMakeFiles/CMakeTmp/$tgt.dir/Debug/$tgt.tlog/$tgt.lastbuildstate

With the target name repeated up to 3 times, we must make it short and
of consistent length to avoid overrunning the 260 character limit
imposed by VS tools.
2015-02-10 10:28:41 -05:00
Brad King 2fd44b082b Merge topic 'test-RunCMake-updates'
c0d8e715 RunCMake: Allow specifying the stderr file for a test.
68d29f51 RunCMake: Allow specifying the directory to run tests in.
1c3918ff RunCMake: Remove unneeded files.
2015-02-10 10:09:47 -05:00
Brad King f3a6e0cb6a Merge branch 'bootstrap-sphinx-qthelp' into release 2015-02-10 10:07:35 -05:00
Nuno Sucena Almeida 85fd62ee91 bootstrap: Add --sphinx-qthelp option to enable qthelp doc generation 2015-02-10 10:03:10 -05:00
Michael Smith e5ef9271a1 FindRuby: Fix finding 64-bit Ruby on Windows
Ruby 2.0.0 and 2.1.5 have 64-bit binaries for Windows, with "x64-"
prefix.
2015-02-10 09:54:21 -05:00
Brad King d46e1e3f0f Merge branch 'release' 2015-02-10 09:47:22 -05:00