Sebastian Holtermann
f71f7ce3f0
cmStringAlgorithms: Move string functions to the new cmStringAlgorithms.h
...
This adds the `cmStringAlgorithms.h` header and moves all string functions
from `cmAlgorithms.h` to `cmStringAlgorithms.h`.
2019-07-29 21:13:56 +02:00
Sebastian Holtermann
09977c1816
cmSystemTool: Let TrimWhitespace accept a cm::string_view
2019-07-28 17:47:26 +02:00
Sebastian Holtermann
2f19e53705
cmSystemTool: Let HelpFileName accept a cm::string_view
2019-07-28 17:47:26 +02:00
Sebastian Holtermann
2c5454f227
cmSystemTool: Let EscapeQuotes accept a cm::string_view
2019-07-28 17:47:26 +02:00
Sebastian Holtermann
ad3183db8c
cmSystemTool: Let Expand(ed)ListArgument accept a cm::string_view
2019-07-28 17:47:26 +02:00
Kyle Edwards
618bd463ad
Merge topic 'remove_compiler_rpath'
...
bd2793b6e9 Help: Add documentation for INSTALL_REMOVE_ENVIROMENT_RPATH
f08dcbffec Property: Add INSTALL_REMOVE_ENVIROMENT_RPATH property
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3544
2019-07-26 12:01:27 -04:00
Jiang Yue
f08dcbffec
Property: Add INSTALL_REMOVE_ENVIROMENT_RPATH property
2019-07-25 12:30:23 -04:00
Sebastian Holtermann
4ff0bb054b
cmSystemTools: Make IsInternallyOn, IsON and IsOff cm::string_view based
2019-07-24 19:31:14 +02:00
Sebastian Holtermann
f8a310c9d1
cmSystemTools: Remove cmSystemTools::FileFormat method
2019-07-04 13:46:19 +02:00
Brad King
6e8acc51a5
Merge topic 'string-tar'
...
57cedb18c0 cmSystemTools: std::string parameters for tar functions
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3392
2019-05-30 09:57:11 -04:00
Brad King
05af1770a0
Merge topic 'tar-zstd-compression'
...
53cb1f2d04 cmake: Teach cmake -E tar command, Zstandard compression
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3357
2019-05-30 09:39:35 -04:00
Vitaly Stakhovsky
57cedb18c0
cmSystemTools: std::string parameters for tar functions
2019-05-29 09:56:08 -04:00
Brad King
4ec2b99941
Merge topic 'selective-tar-extracting-and-listing'
...
c8e217e0a7 cmake: tar: Allow selective extracting and listing of archives
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3342
2019-05-24 10:43:14 -04:00
Sebastian Holtermann
006229278b
Use cmAppend to append ranges to std::vector instances
2019-05-23 16:19:49 +02:00
Bartosz Kosiorek
c8e217e0a7
cmake: tar: Allow selective extracting and listing of archives
2019-05-23 10:08:22 -04:00
Brad King
a4faf7788c
Merge topic 'string-error'
...
e884b1b693 cmSystemTools::Error(): remove const char* overload
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3360
2019-05-23 09:05:47 -04:00
Vitaly Stakhovsky
e884b1b693
cmSystemTools::Error(): remove const char* overload
2019-05-22 10:51:06 -04:00
Sebastian Holtermann
5b53cfda24
cmSystemTools: Remove cmSystemToolsFileTime interface
...
This removes the C style cmSystemToolsFileTime interface in cmSystemTools.
It was replaced by the RAII based cmFileTimes class.
2019-05-22 10:57:10 +02:00
Bartosz Kosiorek
53cb1f2d04
cmake: Teach cmake -E tar command, Zstandard compression
...
Fixes #18657
2019-05-22 03:46:55 +02:00
Sebastian Holtermann
cdff7f4e2a
cmSystemTools: Add ExpandedListArgument and ExpandedLists methods
...
Changes
-------
In `cmSystemTools` this
- renames the method `ExpandList` to `ExpandLists` and makes it iterator based
and adds the methods
- `std::vector<std::string> ExpandedLists(InputIt first, InputIt last)`
- `std::vector<std::string> ExpandedListArgument(const std::string& arg,
bool emptyArgs)`
Both return the `std::vector<std::string>` instead of taking a return vector
reference like `cmSystemTools::ExpandLists` and
`cmSystemTools::ExpandListArgument`.
Motivation
----------
Since C++17 return value optimization is mandatory, so returning a
`std:vector<std::string>` from a function should be (at least) as fast as
passing a return vector reference to the function.
The new methods can replace `cmSystemTools::ExpandLists` and
`cmSystemTools::ExpandListArgument` in many cases, which leads to
shorter and simpler syntax.
E.g. the commonly used pattern
```
if (const char* value = X->GetProperty("A_KEY_STRING")) {
std::vector<std::string> valuesList;
cmSystemTools::ExpandListArgument(value, valuesList);
for (std::string const& i : valuesList) {
doSomething(i);
}
}
```
becomes
```
if (const char* value = X->GetProperty("A_KEY_STRING")) {
for (std::string const& i :
cmSystemTools::ExpandedListArgument(value)) {
doSomething(i);
}
}
```
2019-05-13 15:37:18 +02:00
Brad King
c85524a94a
Ensure stdin, stdout, and stderr pipes are always open
...
On non-Windows platforms libuv assumes that file descriptors 0-2 are
always used for standard pipes and never for anything else. Otherwise,
libuv may re-use one of these descriptors and then fail an assertion
when closing it. Similarly, On Windows platforms our ConsoleBuf
implementation assumes that the standard handles are always open.
If CMake is run with any standard pipes closed, open them with
`/dev/null` or `NUL` to satisfy these assumptions.
Fixes : #19219
2019-05-02 14:34:58 -04:00
Alex Turbov
377d1b7896
cmSystemTools: Remove unused message-related code, simplify logic
2019-04-27 18:36:45 +10:00
Brad King
f0948499f6
cmSystemTools: Fix StringToULong to reject negative numbers
...
Fixes : #19161
2019-04-11 12:56:32 -04:00
Brad King
23a84ac990
Merge topic 'dedup-path-normalization'
...
b52d9d6960 cmSystemTools: Drop unused CollapseCombinedPath method
a13a5c948e Replace use of CollapseCombinedPath with CollapseFullPath
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Sebastian Holtermann <sebholt@xwmw.org>
Merge-request: !3117
2019-03-20 11:32:12 -04:00
Brad King
b52d9d6960
cmSystemTools: Drop unused CollapseCombinedPath method
...
All call sites have been converted to `CollapseFullPath`, so the
now-unused `CollapseCombinedPath` can be removed.
Fixes : #19050
2019-03-19 10:00:08 -04:00
Bartosz Kosiorek
8634576dcb
cmake: Don't interrupt archive creation if unable to read a file.
...
Rationale:
Currently during creation of archive by 'tar',
if error appears, it interrupt archive creation.
As a result only part of files are archived
This behaviour is not consistent with 'copy_directory', native 'tar'
and other command behaviour.
With this Merge Request this behaviour is fixed.
2019-03-18 17:55:35 +01:00
Brad King
a4d99e4dec
Merge topic 'cmrange-improvements'
...
b8031308f3 cmRange: Add unit tests
a8d51ef8b7 cmRange: Add functions filter and transform
da4773e8b8 cmRange: Add functions all_of, any_of, none_of
17a367e77f cmRange: Stylistic cleanup
9eb0e73f46 cmRange: Move to dedicated header file
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Artur Ryt <artur.ryt@gmail.com>
Merge-request: !2972
2019-02-25 08:03:01 -05:00
Brad King
94970cd042
Merge topic 'error-consolidate'
...
9dd255548d cmSystemTools::Error: consolidate parameters into single std::string
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2995
2019-02-25 08:02:07 -05:00
Regina Pfeifer
9eb0e73f46
cmRange: Move to dedicated header file
2019-02-21 08:24:25 -05:00
Vitaly Stakhovsky
4e315e9449
cmSystemTools: More functions accept std::string
params
2019-02-20 14:53:39 -05:00
Vitaly Stakhovsky
9dd255548d
cmSystemTools::Error: consolidate parameters into single std::string
2019-02-20 11:18:11 -05:00
Brad King
03e10384ec
Merge topic 'delete_copy_assign'
...
ae5e97a005 Delete some default constructors and assignment operators
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2968
2019-02-18 09:05:30 -05:00
Vitaly Stakhovsky
bd20cc29a2
cmSystemTools: Remove redundant cmCopyFile() and Split()
2019-02-15 09:52:29 -05:00
Albert Astals Cid
ae5e97a005
Delete some default constructors and assignment operators
...
They are unused, but if someone used them they would lead to
problems since they would copy the internal raw pointers
and the destructor would cause double delete
2019-02-15 07:25:47 -05:00
Vitaly Stakhovsky
080a79ca4a
cmSystemTools: More methods accept std::string
params
2019-02-11 18:11:59 -05:00
Brad King
4b37b4f1bb
Merge topic 'modernize-for-loops'
...
01b2d6ab74 Modernize: Use ranged for-loops when possible
15bdbec017 cmAlgorithms: Make cmRange advance/retreat safe for rvalues
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Daniel Pfeifer <daniel@pfeifer-mail.de>
Merge-request: !2901
2019-02-11 08:08:22 -05:00
Brad King
89ca5d7fdc
Merge topic 'message-stdstring'
...
82edd98300 cmSystemTools: MessageCallback and Message() accept std::string argument
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2929
2019-02-08 08:49:35 -05:00
Brad King
9783825de5
Merge topic 'runsinglecommand'
...
65baaa0e37 cmSystemTools::RunSingleCommand: Accept std::string argument
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2927
2019-02-08 08:47:56 -05:00
Artur Ryt
01b2d6ab74
Modernize: Use ranged for-loops when possible
...
Replaced most manual `const_iterator`-based loops and some
reverse-iterator loops with range loops.
Fixes : #18858
2019-02-07 22:39:05 +01:00
Vitaly Stakhovsky
82edd98300
cmSystemTools: MessageCallback and Message() accept std::string argument
2019-02-07 13:41:27 -05:00
Vitaly Stakhovsky
65baaa0e37
cmSystemTools::RunSingleCommand: Accept std::string argument
2019-02-06 11:02:10 -05:00
Artur Ryt
f3534386b5
Prefer front/back/data over dereferencing begin/rbegin iter
...
Changed for sequenced containers: vector, list, string and array
2019-02-06 10:43:16 -05:00
Sebastian Holtermann
ed0fa784eb
cmSystemTools: Let GetFileFormat
accept a std::stding const&
...
The `const char*` used formerly was converted to a `std::string`
internally anyway.
2019-02-02 18:42:08 +01:00
Regina Pfeifer
1180fc8780
OutputCallback: Accept std::string argument
2019-01-30 18:33:58 +01:00
Brad King
c30f9b1cde
Merge topic 'functional-callbacks'
...
8c92db829b MessageCallback: Remove unused bool& argument
bcee24aecc Use `std::function` for callbacks
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: vvs31415 <vstakhovsky@fastmail.com>
Acked-by: Daniel Pfeifer <daniel@pfeifer-mail.de>
Merge-request: !2872
2019-01-30 08:10:27 -05:00
Regina Pfeifer
8c92db829b
MessageCallback: Remove unused bool& argument
2019-01-29 16:35:53 +01:00
Vitaly Stakhovsky
c31b6e616d
cmSystemTools: copy file member functions accept std::string params
...
Cleaned up `c_str()`s.
`cmSystemTools::CopyFileIfDifferent()` removed as redundant.
2019-01-29 10:34:18 -05:00
Regina Pfeifer
bcee24aecc
Use std::function
for callbacks
2019-01-29 16:32:52 +01:00
Vitaly Stakhovsky
186d9b083d
cmSystemTools::Message: Add overload accepting std::string
2019-01-28 09:35:51 -05:00
Brad King
c18fc30d1a
Merge topic 'renamefile-string'
...
9e5c13738b cmSystemTools::RenameFile: Accepts std::string args
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2842
2019-01-25 08:00:14 -05:00