forked from qt-creator/qt-creator
add $$sorted() function
[ChangeLog][qmake] Added $$sorted() function. Change-Id: Ic069d3ef7c0b7a260c714c76eecc71c41417d01f Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com> Reviewed-by: Martin Smith <martin.smith@theqtcompany.com> (cherry picked from qtbase/50e22c765343102c4e0acf1eee8a6ce6f6f39ccf) Reviewed-by: Jake Petroules <jake.petroules@qt.io>
This commit is contained in:
@@ -96,6 +96,7 @@ public:
|
||||
bool operator!=(const QString &other) const { return !(*this == other); }
|
||||
bool operator!=(QLatin1String other) const { return !(*this == other); }
|
||||
bool operator!=(const char *other) const { return !(*this == other); }
|
||||
bool operator<(const ProString &other) const { return toQStringRef() < other.toQStringRef(); }
|
||||
bool isNull() const { return m_string.isNull(); }
|
||||
bool isEmpty() const { return !m_length; }
|
||||
int length() const { return m_length; }
|
||||
|
@@ -84,7 +84,7 @@ enum ExpandFunc {
|
||||
E_INVALID = 0, E_MEMBER, E_STR_MEMBER, E_FIRST, E_TAKE_FIRST, E_LAST, E_TAKE_LAST,
|
||||
E_SIZE, E_STR_SIZE, E_CAT, E_FROMFILE, E_EVAL, E_LIST, E_SPRINTF, E_FORMAT_NUMBER,
|
||||
E_NUM_ADD, E_JOIN, E_SPLIT, E_BASENAME, E_DIRNAME, E_SECTION,
|
||||
E_FIND, E_SYSTEM, E_UNIQUE, E_REVERSE, E_QUOTE, E_ESCAPE_EXPAND,
|
||||
E_FIND, E_SYSTEM, E_UNIQUE, E_SORTED, E_REVERSE, E_QUOTE, E_ESCAPE_EXPAND,
|
||||
E_UPPER, E_LOWER, E_TITLE, E_FILES, E_PROMPT, E_RE_ESCAPE, E_VAL_ESCAPE,
|
||||
E_REPLACE, E_SORT_DEPENDS, E_RESOLVE_DEPENDS, E_ENUMERATE_VARS,
|
||||
E_SHADOWED, E_ABSOLUTE_PATH, E_RELATIVE_PATH, E_CLEAN_PATH,
|
||||
@@ -128,6 +128,7 @@ void QMakeEvaluator::initFunctionStatics()
|
||||
{ "find", E_FIND },
|
||||
{ "system", E_SYSTEM },
|
||||
{ "unique", E_UNIQUE },
|
||||
{ "sorted", E_SORTED },
|
||||
{ "reverse", E_REVERSE },
|
||||
{ "quote", E_QUOTE },
|
||||
{ "escape_expand", E_ESCAPE_EXPAND },
|
||||
@@ -908,6 +909,14 @@ ProStringList QMakeEvaluator::evaluateBuiltinExpand(
|
||||
ret.removeDuplicates();
|
||||
}
|
||||
break;
|
||||
case E_SORTED:
|
||||
if (args.count() != 1) {
|
||||
evalError(fL1S("sorted(var) requires one argument."));
|
||||
} else {
|
||||
ret = values(map(args.at(0)));
|
||||
std::sort(ret.begin(), ret.end());
|
||||
}
|
||||
break;
|
||||
case E_REVERSE:
|
||||
if (args.count() != 1) {
|
||||
evalError(fL1S("reverse(var) requires one argument."));
|
||||
|
Reference in New Issue
Block a user