summaryrefslogtreecommitdiffstats
path: root/qmake/generators
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@nokia.com>2012-01-09 19:25:44 +0100
committerQt by Nokia <qt-info@nokia.com>2012-01-10 16:16:34 +0100
commit3e4f7ed5ed29c907815f5bae2628e417c340efbc (patch)
tree08facdfcde3ddc9f2d9b185ba93582254f7906fc /qmake/generators
parentf5bdf7583012ab3f82ff53a5af1ee77ced9e049c (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')
-rw-r--r--qmake/generators/mac/pbuilder_pbx.cpp4
-rw-r--r--qmake/generators/mac/pbuilder_pbx.h2
-rw-r--r--qmake/generators/makefile.cpp39
-rw-r--r--qmake/generators/metamakefile.cpp6
-rw-r--r--qmake/generators/projectgenerator.cpp2
-rw-r--r--qmake/generators/win32/msvc_objectmodel.cpp3
-rw-r--r--qmake/generators/win32/msvc_vcproj.cpp6
-rw-r--r--qmake/generators/win32/msvc_vcproj.h4
8 files changed, 33 insertions, 33 deletions
diff --git a/qmake/generators/mac/pbuilder_pbx.cpp b/qmake/generators/mac/pbuilder_pbx.cpp
index fe84c2b1db..d6b2235e31 100644
--- a/qmake/generators/mac/pbuilder_pbx.cpp
+++ b/qmake/generators/mac/pbuilder_pbx.cpp
@@ -168,8 +168,8 @@ ProjectBuilderMakefileGenerator::writeSubDirs(QTextStream &t)
if(tmp_proj.read(fn)) {
if(Option::debug_level) {
debug_msg(1, "Dumping all variables:");
- QMap<QString, QStringList> &vars = tmp_proj.variables();
- for(QMap<QString, QStringList>::Iterator it = vars.begin();
+ QHash<QString, QStringList> &vars = tmp_proj.variables();
+ for(QHash<QString, QStringList>::Iterator it = vars.begin();
it != vars.end(); ++it) {
if(it.key().left(1) != "." && !it.value().isEmpty())
debug_msg(1, "%s: %s === %s", fn.toLatin1().constData(), it.key().toLatin1().constData(),
diff --git a/qmake/generators/mac/pbuilder_pbx.h b/qmake/generators/mac/pbuilder_pbx.h
index bf9749b7fd..f4568be0f7 100644
--- a/qmake/generators/mac/pbuilder_pbx.h
+++ b/qmake/generators/mac/pbuilder_pbx.h
@@ -56,7 +56,7 @@ class ProjectBuilderMakefileGenerator : public UnixMakefileGenerator
bool writeMakefile(QTextStream &);
QString pbxbuild();
- QMap<QString, QString> keys;
+ QHash<QString, QString> keys;
QString keyFor(const QString &file);
QString findProgram(const QString &prog);
QString fixForOutput(const QString &file);
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
diff --git a/qmake/generators/metamakefile.cpp b/qmake/generators/metamakefile.cpp
index 19867f214b..e60d1c44ec 100644
--- a/qmake/generators/metamakefile.cpp
+++ b/qmake/generators/metamakefile.cpp
@@ -218,8 +218,8 @@ BuildsMetaMakefileGenerator::write(const QString &oldpwd)
// debugging
if(Option::debug_level) {
debug_msg(1, "Dumping all variables:");
- QMap<QString, QStringList> &vars = project->variables();
- for(QMap<QString, QStringList>::Iterator it = vars.begin(); it != vars.end(); ++it) {
+ QHash<QString, QStringList> &vars = project->variables();
+ for(QHash<QString, QStringList>::Iterator it = vars.begin(); it != vars.end(); ++it) {
if(!it.key().startsWith(".") && !it.value().isEmpty())
debug_msg(1, "%s === %s", it.key().toLatin1().constData(),
it.value().join(" :: ").toLatin1().constData());
@@ -237,7 +237,7 @@ MakefileGenerator
project->projectFile().toLatin1().constData(),build.toLatin1().constData());
//initialize the base
- QMap<QString, QStringList> basevars;
+ QHash<QString, QStringList> basevars;
if(!project->isEmpty(build + ".CONFIG"))
basevars["CONFIG"] += project->values(build + ".CONFIG");
basevars["CONFIG"] += build;
diff --git a/qmake/generators/projectgenerator.cpp b/qmake/generators/projectgenerator.cpp
index 7bfadbf182..ddbee4b39a 100644
--- a/qmake/generators/projectgenerator.cpp
+++ b/qmake/generators/projectgenerator.cpp
@@ -79,7 +79,7 @@ ProjectGenerator::init()
project->read(QMakeProject::ReadFeatures);
project->variables()["CONFIG"].clear();
- QMap<QString, QStringList> &v = project->variables();
+ QHash<QString, QStringList> &v = project->variables();
QString templ = Option::user_template.isEmpty() ? QString("app") : Option::user_template;
if(!Option::user_template_prefix.isEmpty())
templ.prepend(Option::user_template_prefix);
diff --git a/qmake/generators/win32/msvc_objectmodel.cpp b/qmake/generators/win32/msvc_objectmodel.cpp
index c506e38d06..96c230e98c 100644
--- a/qmake/generators/win32/msvc_objectmodel.cpp
+++ b/qmake/generators/win32/msvc_objectmodel.cpp
@@ -2303,13 +2303,14 @@ bool VCFilter::addExtraCompiler(const VCFilterFile &info)
deps += CustomBuildTool.AdditionalDependencies;
deps += cmd.left(cmd.indexOf(' '));
// Make sure that all deps are only once
- QMap<QString, bool> uniqDeps;
+ QHash<QString, bool> uniqDeps;
for (int c = 0; c < deps.count(); ++c) {
QString aDep = deps.at(c).trimmed();
if (!aDep.isEmpty())
uniqDeps[aDep] = false;
}
CustomBuildTool.AdditionalDependencies = uniqDeps.keys();
+ CustomBuildTool.AdditionalDependencies.sort();
}
// Ensure that none of the output files are also dependencies. Or else, the custom buildstep
diff --git a/qmake/generators/win32/msvc_vcproj.cpp b/qmake/generators/win32/msvc_vcproj.cpp
index fc69881de9..55d3fa8455 100644
--- a/qmake/generators/win32/msvc_vcproj.cpp
+++ b/qmake/generators/win32/msvc_vcproj.cpp
@@ -467,8 +467,8 @@ void VcprojGenerator::writeSubDirs(QTextStream &t)
Option::qmake_mode = old_mode;
if(Option::debug_level) {
debug_msg(1, "Dumping all variables:");
- QMap<QString, QStringList> &vars = tmp_proj.variables();
- for(QMap<QString, QStringList>::Iterator it = vars.begin();
+ QHash<QString, QStringList> &vars = tmp_proj.variables();
+ for(QHash<QString, QStringList>::Iterator it = vars.begin();
it != vars.end(); ++it) {
if(it.key().left(1) != "." && !it.value().isEmpty())
debug_msg(1, "%s: %s === %s", fn.toLatin1().constData(), it.key().toLatin1().constData(),
@@ -1575,7 +1575,7 @@ void VcprojGenerator::outputVariables()
{
#if 0
qDebug("Generator: MSVC.NET: List of current variables:");
- for(QMap<QString, QStringList>::ConstIterator it = project->variables().begin(); it != project->variables().end(); ++it)
+ for(QHash<QString, QStringList>::ConstIterator it = project->variables().begin(); it != project->variables().end(); ++it)
qDebug("Generator: MSVC.NET: %s => %s", qPrintable(it.key()), qPrintable(it.value().join(" | ")));
#endif
}
diff --git a/qmake/generators/win32/msvc_vcproj.h b/qmake/generators/win32/msvc_vcproj.h
index 5bb6b2d85f..35ac670c62 100644
--- a/qmake/generators/win32/msvc_vcproj.h
+++ b/qmake/generators/win32/msvc_vcproj.h
@@ -76,8 +76,8 @@ public:
bool autogenPrecompCPP;
static bool hasBuiltinCompiler(const QString &file);
- QMap<QString, QStringList> extraCompilerSources;
- QMap<QString, QStringList> extraCompilerOutputs;
+ QHash<QString, QStringList> extraCompilerSources;
+ QHash<QString, QStringList> extraCompilerOutputs;
bool usePCH;
VCProjectWriter *projectWriter;