diff options
author | Oswald Buddenhagen <oswald.buddenhagen@nokia.com> | 2012-01-09 19:25:44 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-01-10 16:16:34 +0100 |
commit | 3e4f7ed5ed29c907815f5bae2628e417c340efbc (patch) | |
tree | 08facdfcde3ddc9f2d9b185ba93582254f7906fc /qmake/generators/makefile.cpp | |
parent | f5bdf7583012ab3f82ff53a5af1ee77ced9e049c (diff) |
QMap => QHash
this should make the evaluator quite a lot faster. the total win for
qtbase/src is only 6%, though.
i made some effort to avoid that output files get randomized. however, i
didn't bother to keep debug output sorted.
Change-Id: Id9cef4674c0153c11ebbb65cb63bf8c229eb56e3
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Diffstat (limited to 'qmake/generators/makefile.cpp')
-rw-r--r-- | qmake/generators/makefile.cpp | 39 |
1 files changed, 19 insertions, 20 deletions
diff --git a/qmake/generators/makefile.cpp b/qmake/generators/makefile.cpp index 0a8da26e17..84525bce5d 100644 --- a/qmake/generators/makefile.cpp +++ b/qmake/generators/makefile.cpp @@ -165,7 +165,7 @@ MakefileGenerator::MakefileGenerator() : void MakefileGenerator::verifyCompilers() { - QMap<QString, QStringList> &v = project->variables(); + QHash<QString, QStringList> &v = project->variables(); QStringList &quc = v["QMAKE_EXTRA_COMPILERS"]; for(int i = 0; i < quc.size(); ) { bool error = false; @@ -195,7 +195,7 @@ MakefileGenerator::initOutPaths() return; verifyCompilers(); init_opath_already = true; - QMap<QString, QStringList> &v = project->variables(); + QHash<QString, QStringList> &v = project->variables(); //for shadow builds if(!v.contains("QMAKE_ABSOLUTE_SOURCE_PATH")) { if(Option::mkfile::do_cache && !Option::mkfile::cachefile.isEmpty() && @@ -317,7 +317,7 @@ QStringList MakefileGenerator::findFilesInVPATH(QStringList l, uchar flags, const QString &vpath_var) { QStringList vpath; - QMap<QString, QStringList> &v = project->variables(); + QHash<QString, QStringList> &v = project->variables(); for(int val_it = 0; val_it < l.count(); ) { bool remove_file = false; QString &val = l[val_it]; @@ -411,7 +411,7 @@ MakefileGenerator::findFilesInVPATH(QStringList l, uchar flags, const QString &v void MakefileGenerator::initCompiler(const MakefileGenerator::Compiler &comp) { - QMap<QString, QStringList> &v = project->variables(); + QHash<QString, QStringList> &v = project->variables(); QStringList &l = v[comp.variable_in]; // find all the relevant file inputs if(!init_compiler_already.contains(comp.variable_in)) { @@ -431,7 +431,7 @@ MakefileGenerator::init() verifyCompilers(); init_already = true; - QMap<QString, QStringList> &v = project->variables(); + QHash<QString, QStringList> &v = project->variables(); QStringList &quc = v["QMAKE_EXTRA_COMPILERS"]; //make sure the COMPILERS are in the correct input/output chain order @@ -875,8 +875,8 @@ MakefileGenerator::processPrlFile(QString &file) debug_msg(2, "Ignored meta file %s [%s]", real_meta_file.toLatin1().constData(), libinfo.type().toLatin1().constData()); } else { ret = true; - QMap<QString, QStringList> &vars = libinfo.variables(); - for(QMap<QString, QStringList>::Iterator it = vars.begin(); it != vars.end(); ++it) + QHash<QString, QStringList> &vars = libinfo.variables(); + for(QHash<QString, QStringList>::Iterator it = vars.begin(); it != vars.end(); ++it) processPrlVariable(it.key(), it.value()); if(try_replace_file && !libinfo.isEmpty("QMAKE_PRL_TARGET")) { QString dir; @@ -2138,23 +2138,22 @@ MakefileGenerator::writeExtraCompilerVariables(QTextStream &t) void MakefileGenerator::writeExtraVariables(QTextStream &t) { - bool first = true; - QMap<QString, QStringList> &vars = project->variables(); + t << endl; + + QStringList outlist; + QHash<QString, QStringList> &vars = project->variables(); QStringList &exports = project->values("QMAKE_EXTRA_VARIABLES"); - for(QMap<QString, QStringList>::Iterator it = vars.begin(); it != vars.end(); ++it) { - for(QStringList::Iterator exp_it = exports.begin(); exp_it != exports.end(); ++exp_it) { + for (QHash<QString, QStringList>::Iterator it = vars.begin(); it != vars.end(); ++it) { + for (QStringList::Iterator exp_it = exports.begin(); exp_it != exports.end(); ++exp_it) { QRegExp rx((*exp_it), Qt::CaseInsensitive, QRegExp::Wildcard); - if(rx.exactMatch(it.key())) { - if(first) { - t << "\n####### Custom Variables" << endl; - first = false; - } - t << "EXPORT_" << it.key() << " = " << it.value().join(" ") << endl; - } + if (rx.exactMatch(it.key())) + outlist << ("EXPORT_" + it.key() + " = " + it.value().join(" ")); } } - if(!first) - t << endl; + if (!outlist.isEmpty()) { + t << "####### Custom Variables" << endl; + t << outlist.join("\n") << endl << endl; + } } bool |