diff options
Diffstat (limited to 'qmake/project.cpp')
-rw-r--r-- | qmake/project.cpp | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/qmake/project.cpp b/qmake/project.cpp index 998d1734b9..9cf6a6f3fc 100644 --- a/qmake/project.cpp +++ b/qmake/project.cpp @@ -671,6 +671,7 @@ QMakeProject::reset() scope_blocks.push(ScopeBlock()); iterator = 0; function = 0; + backslashWarned = false; } bool @@ -1046,7 +1047,7 @@ QMakeProject::parse(const QString &t, QMap<QString, QStringList> &place, int num SKIP_WS(d, d_off, s.length()); QString vals = s.mid(d_off); // vals now contains the space separated list of values int rbraces = vals.count('}'), lbraces = vals.count('{'); - if(scope_blocks.count() > 1 && rbraces - lbraces == 1) { + if(scope_blocks.count() > 1 && rbraces - lbraces == 1 && vals.endsWith('}')) { debug_msg(1, "Project Parser: %s:%d : Leaving block %d", parser.file.toLatin1().constData(), parser.line_no, scope_blocks.count()); ScopeBlock sb = scope_blocks.pop(); @@ -1073,7 +1074,7 @@ QMakeProject::parse(const QString &t, QMap<QString, QStringList> &place, int num } if(vals.contains('=') && numLines > 1) - warn_msg(WarnParser, "Detected possible line continuation: {%s} %s:%d", + warn_msg(WarnParser, "Possible accidental line continuation: {%s} at %s:%d", var.toLatin1().constData(), parser.file.toLatin1().constData(), parser.line_no); QStringList &varlist = place[var]; // varlist is the list in the symbol table @@ -2933,6 +2934,11 @@ QMakeProject::doVariableReplaceExpand(const QString &str, QMap<QString, QStringL break; } } + if(!escape && !backslashWarned) { + backslashWarned = true; + warn_msg(WarnDeprecated, "%s:%d: Unescaped backslashes are deprecated.", + parser.file.toLatin1().constData(), parser.line_no); + } if(escape || !replaced) unicode =0; } else if(!quote && (unicode == SINGLEQUOTE || unicode == DOUBLEQUOTE)) { @@ -3099,13 +3105,12 @@ QStringList &QMakeProject::values(const QString &_var, QMap<QString, QStringList place[var] = QStringList(Option::obj_ext); } } else if (var == QLatin1String("QMAKE_QMAKE")) { - if (place[var].isEmpty()) { - if (!Option::qmake_abslocation.isNull()) - place[var] = QStringList(Option::qmake_abslocation); - else - place[var] = QStringList(Option::fixPathToTargetOS( - QLibraryInfo::location(QLibraryInfo::BinariesPath) + "/qmake", false)); - } + if (place[var].isEmpty()) + place[var] = QStringList(Option::fixPathToTargetOS( + !Option::qmake_abslocation.isEmpty() + ? Option::qmake_abslocation + : QLibraryInfo::location(QLibraryInfo::BinariesPath) + "/qmake", + false)); } else if (var == QLatin1String("EPOCROOT")) { if (place[var].isEmpty()) place[var] = QStringList(epocRoot()); |