diff options
Diffstat (limited to 'qmake/option.cpp')
-rw-r--r-- | qmake/option.cpp | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/qmake/option.cpp b/qmake/option.cpp index 1354281cef..dd283365f2 100644 --- a/qmake/option.cpp +++ b/qmake/option.cpp @@ -192,6 +192,7 @@ bool usage(const char *a0) " -norecursive Don't do a recursive search\n" " -recursive Do a recursive search\n" " -set <prop> <value> Set persistent property\n" + " -unset <prop> Unset persistent property\n" " -query <prop> Query persistent property. Show all if <prop> is empty.\n" " -cache file Use file as cache [makefile mode only]\n" " -spec spec Use spec as QMAKESPEC [makefile mode only]\n" @@ -226,6 +227,8 @@ Option::parseCommandLine(int argc, char **argv, int skip) Option::qmake_mode = Option::QMAKE_GENERATE_PRL; } else if(opt == "set") { Option::qmake_mode = Option::QMAKE_SET_PROPERTY; + } else if(opt == "unset") { + Option::qmake_mode = Option::QMAKE_UNSET_PROPERTY; } else if(opt == "query") { Option::qmake_mode = Option::QMAKE_QUERY_PROPERTY; } else if(opt == "makefile") { @@ -336,7 +339,8 @@ Option::parseCommandLine(int argc, char **argv, int skip) } else { bool handled = true; if(Option::qmake_mode == Option::QMAKE_QUERY_PROPERTY || - Option::qmake_mode == Option::QMAKE_SET_PROPERTY) { + Option::qmake_mode == Option::QMAKE_SET_PROPERTY || + Option::qmake_mode == Option::QMAKE_UNSET_PROPERTY) { Option::prop::properties.append(arg); } else { QFileInfo fi(arg); @@ -626,16 +630,18 @@ Option::fixString(QString string, uchar flags) qmakeAddCacheClear(qmakeDeleteCacheClear<QHash<FixStringCacheKey, QString> >, (void**)&cache); } FixStringCacheKey cacheKey(string, flags); - if(cache->contains(cacheKey)) { - const QString ret = cache->value(cacheKey); - //qDebug() << "Fix (cached) " << orig_string << "->" << ret; - return ret; + + QHash<FixStringCacheKey, QString>::const_iterator it = cache->constFind(cacheKey); + + if (it != cache->constEnd()) { + //qDebug() << "Fix (cached) " << orig_string << "->" << it.value(); + return it.value(); } //fix the environment variables if(flags & Option::FixEnvVars) { int rep; - QRegExp reg_var("\\$\\(.*\\)"); + static QRegExp reg_var("\\$\\(.*\\)"); reg_var.setMinimal(true); while((rep = reg_var.indexIn(string)) != -1) string.replace(rep, reg_var.matchedLength(), |