mirror of
https://github.com/Kitware/CMake.git
synced 2026-03-09 10:00:12 -05:00
cmStringAlgorithms: Add cmExpandList functions
This commit is contained in:
@@ -68,6 +68,48 @@ std::string cmJoin(Range const& rng, cm::string_view separator)
|
||||
/** Extract tokens that are separated by any of the characters in @a sep. */
|
||||
std::vector<std::string> cmTokenize(cm::string_view str, cm::string_view sep);
|
||||
|
||||
/**
|
||||
* Expand the ; separated string @a arg into multiple arguments.
|
||||
* All found arguments are appended to @a argsOut.
|
||||
*/
|
||||
void cmExpandList(cm::string_view arg, std::vector<std::string>& argsOut,
|
||||
bool emptyArgs = false);
|
||||
|
||||
/**
|
||||
* Expand out any arguments in the string range [@a first, @a last) that have
|
||||
* ; separated strings into multiple arguments. All found arguments are
|
||||
* appended to @a argsOut.
|
||||
*/
|
||||
template <class InputIt>
|
||||
void cmExpandLists(InputIt first, InputIt last,
|
||||
std::vector<std::string>& argsOut)
|
||||
{
|
||||
for (; first != last; ++first) {
|
||||
ExpandList(*first, argsOut);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Same as cmExpandList but a new vector is created containing
|
||||
* the expanded arguments from the string @a arg.
|
||||
*/
|
||||
std::vector<std::string> cmExpandedList(cm::string_view arg,
|
||||
bool emptyArgs = false);
|
||||
|
||||
/**
|
||||
* Same as cmExpandList but a new vector is created containing the expanded
|
||||
* versions of all arguments in the string range [@a first, @a last).
|
||||
*/
|
||||
template <class InputIt>
|
||||
std::vector<std::string> cmExpandedLists(InputIt first, InputIt last)
|
||||
{
|
||||
std::vector<std::string> argsOut;
|
||||
for (; first != last; ++first) {
|
||||
cmExpandList(*first, argsOut);
|
||||
}
|
||||
return argsOut;
|
||||
}
|
||||
|
||||
/** Concatenate string pieces into a single string. */
|
||||
std::string cmCatViews(std::initializer_list<cm::string_view> views);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user