summaryrefslogtreecommitdiffstats
path: root/qmake/generators
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@nokia.com>2012-06-29 09:05:36 +0200
committerOswald Buddenhagen <oswald.buddenhagen@nokia.com>2012-06-29 09:06:37 +0200
commit1491065506eb97c9def93b908db1df9fcdf3fff0 (patch)
tree8241e72cc1016b41c08f9d14e81fb63c07e6a5ba /qmake/generators
parent551e1e63d9da18787ae72fc3f0e76f28dbe5f7e3 (diff)
parent61c775684fe38f3c1e1bc7599e21054aedba523c (diff)
Merge branch 'buildsystem' (second round)
refactoring and cleanup. fixes x-builds between different os families. Conflicts: mkspecs/features/qt.prf Change-Id: I0205e6f07f77c9b015cf055dd87a471883949a91
Diffstat (limited to 'qmake/generators')
-rw-r--r--qmake/generators/integrity/gbuild.cpp38
-rw-r--r--qmake/generators/mac/pbuilder_pbx.cpp20
-rw-r--r--qmake/generators/makefile.cpp127
-rw-r--r--qmake/generators/makefile.h4
-rw-r--r--qmake/generators/metamakefile.cpp63
-rw-r--r--qmake/generators/metamakefile.h5
-rw-r--r--qmake/generators/projectgenerator.cpp33
-rw-r--r--qmake/generators/unix/unixmake.cpp21
-rw-r--r--qmake/generators/unix/unixmake2.cpp28
-rw-r--r--qmake/generators/win32/borland_bmake.cpp2
-rw-r--r--qmake/generators/win32/mingw_make.cpp21
-rw-r--r--qmake/generators/win32/mingw_make.h1
-rw-r--r--qmake/generators/win32/msvc_nmake.cpp8
-rw-r--r--qmake/generators/win32/msvc_objectmodel.cpp14
-rw-r--r--qmake/generators/win32/msvc_objectmodel.h2
-rw-r--r--qmake/generators/win32/msvc_vcproj.cpp44
-rw-r--r--qmake/generators/win32/winmakefile.cpp12
17 files changed, 175 insertions, 268 deletions
diff --git a/qmake/generators/integrity/gbuild.cpp b/qmake/generators/integrity/gbuild.cpp
index 0d9d81c549..219b6a2d5d 100644
--- a/qmake/generators/integrity/gbuild.cpp
+++ b/qmake/generators/integrity/gbuild.cpp
@@ -213,7 +213,6 @@ GBuildMakefileGenerator::write()
dllbase += DLLOFFSET;
}
- warn_msg(WarnParser, Option::output.fileName().toLocal8Bit().constData());
QTextStream t(&Option::output);
QString primaryTarget(project->values("QMAKE_CXX").at(0));
@@ -259,8 +258,8 @@ GBuildMakefileGenerator::write()
t << "\t-Iwork\n";
t << "\t-Llib\n";
t << "\t";
- QStringList &l = project->values("QMAKE_CXXFLAGS");
- for (QStringList::Iterator it = l.begin(); it != l.end(); ++it) {
+ const QStringList &l = project->values("QMAKE_CXXFLAGS");
+ for (QStringList::ConstIterator it = l.begin(); it != l.end(); ++it) {
if ((*it).startsWith("-"))
t << "\n" << "\t" << (*it);
else
@@ -285,8 +284,8 @@ GBuildMakefileGenerator::write()
if (isnativebin && (i == 0))
continue;
t << "\t";
- QStringList &l = project->values(src[i]);
- for (QStringList::Iterator it = l.begin(); it != l.end(); ++it) {
+ const QStringList &l = project->values(src[i]);
+ for (QStringList::ConstIterator it = l.begin(); it != l.end(); ++it) {
if ((*it).startsWith("-"))
t << "\n" << "\t" << (*it);
else
@@ -298,8 +297,8 @@ GBuildMakefileGenerator::write()
/* first subdirectories/subprojects */
{
- QStringList &l = project->values("SUBDIRS");
- for (QStringList::Iterator it = l.begin(); it != l.end(); ++it) {
+ const QStringList &l = project->values("SUBDIRS");
+ for (QStringList::ConstIterator it = l.begin(); it != l.end(); ++it) {
QString gpjname((*it));
/* avoid native tools */
if (nativebins.contains(gpjname.section("_", -1)))
@@ -319,9 +318,10 @@ GBuildMakefileGenerator::write()
}
{
- QStringList &l = project->values("RESOURCES");
- for (QStringList::Iterator it = l.begin(); it != l.end(); ++it) {
- QString tmpstr((*it).replace(pathtoremove, ""));
+ const QStringList &l = project->values("RESOURCES");
+ for (QStringList::ConstIterator it = l.begin(); it != l.end(); ++it) {
+ QString tmpstr(*it);
+ tmpstr.remove(pathtoremove);
t << tmpstr << "\t[Qt Resource]\n";
tmpstr = tmpstr.section(".", -2, -1).section(QDir::separator(), -1);
tmpstr.remove(".qrc");
@@ -332,9 +332,10 @@ GBuildMakefileGenerator::write()
}
}
{
- QStringList &l = project->values("FORMS");
- for (QStringList::Iterator it = l.begin(); it != l.end(); ++it) {
- QString tmpstr((*it).replace(pathtoremove, ""));
+ const QStringList &l = project->values("FORMS");
+ for (QStringList::ConstIterator it = l.begin(); it != l.end(); ++it) {
+ QString tmpstr(*it);
+ tmpstr.remove(pathtoremove);
t << tmpstr << "\t[Qt Dialog]\n";
tmpstr = tmpstr.section(".", 0, 0).section(QDir::separator(), -1);
tmpstr.insert(tmpstr.lastIndexOf(QDir::separator()) + 1, "ui_");
@@ -347,22 +348,22 @@ GBuildMakefileGenerator::write()
/* source files for this project */
QString src[] = { "HEADERS", "SOURCES", QString() };
for (int i = 0; !src[i].isNull(); i++) {
- QStringList &l = project->values(src[i]);
- for (QStringList::Iterator it = l.begin(); it != l.end(); ++it) {
+ const QStringList &l = project->values(src[i]);
+ for (QStringList::ConstIterator it = l.begin(); it != l.end(); ++it) {
if ((*it).isEmpty())
continue;
/* native tools aren't preprocessed */
if (!isnativebin)
t << writeOne((*it), pathtoremove);
else
- t << (*it).remove(pathtoremove) << "\n";
+ t << QString(*it).remove(pathtoremove) << "\n";
}
}
t << "\n";
{
- QStringList &l = project->values("GENERATED_SOURCES");
- for (QStringList::Iterator it = l.begin(); it != l.end(); ++it) {
+ const QStringList &l = project->values("GENERATED_SOURCES");
+ for (QStringList::ConstIterator it = l.begin(); it != l.end(); ++it) {
t << "work/" << (*it).section(QDir::separator(), -1) << "\n";
}
}
@@ -425,7 +426,6 @@ GBuildMakefileGenerator::openOutput(QFile &file, const QString &build) const
outputName += QDir::separator();
outputName += fileInfo(project->projectFile()).baseName();
outputName += projectSuffix();
- warn_msg(WarnParser, outputName.toLocal8Bit().constData());
file.setFileName(outputName);
}
debug_msg(1, "file is %s", file.fileName().toLatin1().constData());
diff --git a/qmake/generators/mac/pbuilder_pbx.cpp b/qmake/generators/mac/pbuilder_pbx.cpp
index 80c220ed2b..74046a0ac4 100644
--- a/qmake/generators/mac/pbuilder_pbx.cpp
+++ b/qmake/generators/mac/pbuilder_pbx.cpp
@@ -166,16 +166,6 @@ ProjectBuilderMakefileGenerator::writeSubDirs(QTextStream &t)
fprintf(stderr, "Cannot find directory: %s\n", dir.toLatin1().constData());
}
if(tmp_proj.read(fn)) {
- if(Option::debug_level) {
- debug_msg(1, "Dumping all variables:");
- 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(),
- it.value().join(" :: ").toLatin1().constData());
- }
- }
if(tmp_proj.first("TEMPLATE") == "subdirs") {
QMakeProject *pp = new QMakeProject(&tmp_proj);
pb_subdirs += new ProjectBuilderSubDirs(pp, dir);
@@ -393,7 +383,7 @@ ProjectBuilderMakefileGenerator::writeSubDirs(QTextStream &t)
t << "\t\t\t" << writeSettings("buildConfigurationList", keyFor("QMAKE_SUBDIR_PBX_BUILDCONFIG_LIST")) << ";" << "\n";
t << "\t\t\t" << "projectReferences = (" << "\n";
{
- QStringList &qmake_subdirs = project->values("QMAKE_PBX_SUBDIRS");
+ const QStringList &qmake_subdirs = project->values("QMAKE_PBX_SUBDIRS");
for(int i = 0; i < qmake_subdirs.count(); i++) {
QString subdir = qmake_subdirs[i];
t << "\t\t\t\t" << "{" << "\n"
@@ -714,16 +704,16 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t)
mkt << "IMAGES = " << varList("QMAKE_IMAGE_COLLECTION") << endl;
mkt << "PARSERS =";
if(!project->isEmpty("YACCSOURCES")) {
- QStringList &yaccs = project->values("YACCSOURCES");
- for(QStringList::Iterator yit = yaccs.begin(); yit != yaccs.end(); ++yit) {
+ const QStringList &yaccs = project->values("YACCSOURCES");
+ for (QStringList::ConstIterator yit = yaccs.begin(); yit != yaccs.end(); ++yit) {
QFileInfo fi(fileInfo((*yit)));
mkt << " " << fi.path() << Option::dir_sep << fi.baseName()
<< Option::yacc_mod << Option::cpp_ext.first();
}
}
if(!project->isEmpty("LEXSOURCES")) {
- QStringList &lexs = project->values("LEXSOURCES");
- for(QStringList::Iterator lit = lexs.begin(); lit != lexs.end(); ++lit) {
+ const QStringList &lexs = project->values("LEXSOURCES");
+ for (QStringList::ConstIterator lit = lexs.begin(); lit != lexs.end(); ++lit) {
QFileInfo fi(fileInfo((*lit)));
mkt << " " << fi.path() << Option::dir_sep << fi.baseName()
<< Option::lex_mod << Option::cpp_ext.first();
diff --git a/qmake/generators/makefile.cpp b/qmake/generators/makefile.cpp
index f126da3280..c4e0a4face 100644
--- a/qmake/generators/makefile.cpp
+++ b/qmake/generators/makefile.cpp
@@ -300,6 +300,12 @@ MakefileGenerator::setProjectFile(QMakeProject *p)
if(project)
return;
project = p;
+ if (project->isActiveConfig("win32"))
+ target_mode = TARG_WIN_MODE;
+ else if (project->isActiveConfig("macx"))
+ target_mode = TARG_MACX_MODE;
+ else
+ target_mode = TARG_UNIX_MODE;
init();
findLibraries();
if(Option::qmake_mode == Option::QMAKE_GENERATE_MAKEFILE &&
@@ -311,7 +317,7 @@ QStringList
MakefileGenerator::findFilesInVPATH(QStringList l, uchar flags, const QString &vpath_var)
{
QStringList vpath;
- QHash<QString, QStringList> &v = project->variables();
+ const QHash<QString, QStringList> &v = project->variables();
for(int val_it = 0; val_it < l.count(); ) {
bool remove_file = false;
QString &val = l[val_it];
@@ -442,14 +448,14 @@ MakefileGenerator::init()
continue_compiler_chain:
if(jump_count > quc.size()) //just to avoid an infinite loop here
break;
- if(project->variables().contains(quc.at(comp_out) + ".variable_out")) {
- const QStringList &outputs = project->variables().value(quc.at(comp_out) + ".variable_out");
+ if (v.contains(quc.at(comp_out) + ".variable_out")) {
+ const QStringList &outputs = v.value(quc.at(comp_out) + ".variable_out");
for(int out = 0; out < outputs.size(); ++out) {
for(int comp_in = 0; comp_in < quc.size(); ++comp_in) {
if(comp_in == comp_out)
continue;
- if(project->variables().contains(quc.at(comp_in) + ".input")) {
- const QStringList &inputs = project->variables().value(quc.at(comp_in) + ".input");
+ if (v.contains(quc.at(comp_in) + ".input")) {
+ const QStringList &inputs = v.value(quc.at(comp_in) + ".input");
for(int in = 0; in < inputs.size(); ++in) {
if(inputs.at(in) == outputs.at(out) && comp_out > comp_in) {
++jump_count;
@@ -665,7 +671,7 @@ MakefileGenerator::init()
if(tmp_out.isEmpty())
continue;
if(project->values((*it) + ".CONFIG").indexOf("combine") != -1) {
- QStringList &compilerInputs = project->values((*it) + ".input");
+ const QStringList &compilerInputs = project->values((*it) + ".input");
// Don't generate compiler output if it doesn't have input.
if (compilerInputs.isEmpty() || project->values(compilerInputs.first()).isEmpty())
continue;
@@ -674,8 +680,8 @@ MakefileGenerator::init()
continue;
QString out = fileFixify(tmp_out, Option::output_dir, Option::output_dir);
bool pre_dep = (project->values((*it) + ".CONFIG").indexOf("target_predeps") != -1);
- if(project->variables().contains((*it) + ".variable_out")) {
- const QStringList &var_out = project->variables().value((*it) + ".variable_out");
+ if (v.contains((*it) + ".variable_out")) {
+ const QStringList &var_out = v.value((*it) + ".variable_out");
for(int i = 0; i < var_out.size(); ++i) {
QString v = var_out.at(i);
if(v == QLatin1String("SOURCES"))
@@ -697,14 +703,14 @@ MakefileGenerator::init()
list.append(out);
}
if(pre_dep) {
- QStringList &list = project->variables()["PRE_TARGETDEPS"];
+ QStringList &list = project->values("PRE_TARGETDEPS");
if(!list.contains(out))
list.append(out);
}
}
} else {
- QStringList &tmp = project->values((*it) + ".input");
- for(QStringList::Iterator it2 = tmp.begin(); it2 != tmp.end(); ++it2) {
+ const QStringList &tmp = project->values((*it) + ".input");
+ for (QStringList::ConstIterator it2 = tmp.begin(); it2 != tmp.end(); ++it2) {
const QStringList inputs = project->values((*it2));
for(QStringList::ConstIterator input = inputs.constBegin(); input != inputs.constEnd(); ++input) {
if((*input).isEmpty())
@@ -715,8 +721,8 @@ MakefileGenerator::init()
QString out = replaceExtraCompilerVariables(tmp_out, (*input), QString());
out = fileFixify(out, Option::output_dir, Option::output_dir);
bool pre_dep = (project->values((*it) + ".CONFIG").indexOf("target_predeps") != -1);
- if(project->variables().contains((*it) + ".variable_out")) {
- const QStringList &var_out = project->variables().value((*it) + ".variable_out");
+ if (v.contains((*it) + ".variable_out")) {
+ const QStringList &var_out = project->values(*it + ".variable_out");
for(int i = 0; i < var_out.size(); ++i) {
QString v = var_out.at(i);
if(v == QLatin1String("SOURCES"))
@@ -738,7 +744,7 @@ MakefileGenerator::init()
list.append(out);
}
if(pre_dep) {
- QStringList &list = project->variables()["PRE_TARGETDEPS"];
+ QStringList &list = project->values("PRE_TARGETDEPS");
if(!list.contains(out))
list.append(out);
}
@@ -1151,11 +1157,11 @@ MakefileGenerator::writePrlFile()
void
MakefileGenerator::writeObj(QTextStream &t, const QString &src)
{
- QStringList &srcl = project->values(src);
- QStringList objl = createObjectList(srcl);
+ const QStringList &srcl = project->values(src);
+ const QStringList objl = createObjectList(srcl);
- QStringList::Iterator oit = objl.begin();
- QStringList::Iterator sit = srcl.begin();
+ QStringList::ConstIterator oit = objl.begin();
+ QStringList::ConstIterator sit = srcl.begin();
QString stringSrc("$src");
QString stringObj("$obj");
for(;sit != srcl.end() && oit != objl.end(); ++oit, ++sit) {
@@ -1216,8 +1222,8 @@ MakefileGenerator::writeInstalls(QTextStream &t, const QString &installs, bool n
rm_dir_contents = "-$(DEL_FILE) -r";
QString all_installs, all_uninstalls;
- QStringList &l = project->values(installs);
- for(QStringList::Iterator it = l.begin(); it != l.end(); ++it) {
+ const QStringList &l = project->values(installs);
+ for (QStringList::ConstIterator it = l.begin(); it != l.end(); ++it) {
QString pvar = (*it) + ".path";
if(project->values((*it) + ".CONFIG").indexOf("no_path") == -1 &&
project->values((*it) + ".CONFIG").indexOf("dummy_install") == -1 &&
@@ -1683,10 +1689,10 @@ MakefileGenerator::verifyExtraCompiler(const QString &comp, const QString &file_
if(!pass)
return false;
} else {
- QStringList &tmp = project->values(comp + ".input");
- for(QStringList::Iterator it = tmp.begin(); it != tmp.end(); ++it) {
- QStringList &inputs = project->values((*it));
- for(QStringList::Iterator input = inputs.begin(); input != inputs.end(); ++input) {
+ const QStringList &tmp = project->values(comp + ".input");
+ for (QStringList::ConstIterator it = tmp.begin(); it != tmp.end(); ++it) {
+ const QStringList &inputs = project->values((*it));
+ for (QStringList::ConstIterator input = inputs.begin(); input != inputs.end(); ++input) {
if((*input).isEmpty())
continue;
QString in = fileFixify(Option::fixPathToTargetOS((*input), false));
@@ -1729,10 +1735,10 @@ MakefileGenerator::verifyExtraCompiler(const QString &comp, const QString &file_
if(system(cmd.toLatin1().constData()))
return false;
} else {
- QStringList &tmp = project->values(comp + ".input");
- for(QStringList::Iterator it = tmp.begin(); it != tmp.end(); ++it) {
- QStringList &inputs = project->values((*it));
- for(QStringList::Iterator input = inputs.begin(); input != inputs.end(); ++input) {
+ const QStringList &tmp = project->values(comp + ".input");
+ for (QStringList::ConstIterator it = tmp.begin(); it != tmp.end(); ++it) {
+ const QStringList &inputs = project->values((*it));
+ for (QStringList::ConstIterator input = inputs.begin(); input != inputs.end(); ++input) {
if((*input).isEmpty())
continue;
QString in = fileFixify(Option::fixPathToTargetOS((*input), false));
@@ -1753,14 +1759,14 @@ MakefileGenerator::verifyExtraCompiler(const QString &comp, const QString &file_
void
MakefileGenerator::writeExtraTargets(QTextStream &t)
{
- QStringList &qut = project->values("QMAKE_EXTRA_TARGETS");
- for(QStringList::Iterator it = qut.begin(); it != qut.end(); ++it) {
+ const QStringList &qut = project->values("QMAKE_EXTRA_TARGETS");
+ for (QStringList::ConstIterator it = qut.begin(); it != qut.end(); ++it) {
QString targ = var((*it) + ".target"),
cmd = var((*it) + ".commands"), deps;
if(targ.isEmpty())
targ = (*it);
- QStringList &deplist = project->values((*it) + ".depends");
- for(QStringList::Iterator dep_it = deplist.begin(); dep_it != deplist.end(); ++dep_it) {
+ const QStringList &deplist = project->values((*it) + ".depends");
+ for (QStringList::ConstIterator dep_it = deplist.begin(); dep_it != deplist.end(); ++dep_it) {
QString dep = var((*dep_it) + ".target");
if(dep.isEmpty())
dep = (*dep_it);
@@ -1822,7 +1828,7 @@ MakefileGenerator::writeExtraCompilerTargets(QTextStream &t)
+ escapeFilePath(Option::fixPathToLocalOS(Option::output_dir, false))
+ QLatin1String(" && ");
}
- QStringList &vars = project->values((*it) + ".variables");
+ const QStringList &vars = project->values((*it) + ".variables");
if(tmp_out.isEmpty() || tmp_cmd.isEmpty())
continue;
QStringList tmp_inputs;
@@ -2114,10 +2120,10 @@ MakefileGenerator::writeExtraVariables(QTextStream &t)
t << endl;
QStringList outlist;
- QHash<QString, QStringList> &vars = project->variables();
- QStringList &exports = project->values("QMAKE_EXTRA_VARIABLES");
- 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) {
+ const QHash<QString, QStringList> &vars = project->variables();
+ const QStringList &exports = project->values("QMAKE_EXTRA_VARIABLES");
+ for (QHash<QString, QStringList>::ConstIterator it = vars.begin(); it != vars.end(); ++it) {
+ for (QStringList::ConstIterator exp_it = exports.begin(); exp_it != exports.end(); ++exp_it) {
QRegExp rx((*exp_it), Qt::CaseInsensitive, QRegExp::Wildcard);
if (rx.exactMatch(it.key()))
outlist << ("EXPORT_" + it.key() + " = " + it.value().join(" "));
@@ -2133,7 +2139,7 @@ bool
MakefileGenerator::writeStubMakefile(QTextStream &t)
{
t << "QMAKE = " << var("QMAKE_QMAKE") << endl;
- QStringList &qut = project->values("QMAKE_EXTRA_TARGETS");
+ const QStringList &qut = project->values("QMAKE_EXTRA_TARGETS");
for(QStringList::ConstIterator it = qut.begin(); it != qut.end(); ++it)
t << *it << " ";
//const QString ofile = Option::fixPathToTargetOS(fileFixify(Option::output.fileName()));
@@ -2196,14 +2202,6 @@ QString MakefileGenerator::buildArgs(const QString &outdir)
ret += " -spec " + fixifySpecdir(Option::mkfile::qmakespec, outdir);
if (!Option::mkfile::xqmakespec_commandline.isEmpty())
ret += " -xspec " + fixifySpecdir(Option::mkfile::xqmakespec, outdir);
- if (Option::target_mode_overridden) {
- if (Option::target_mode == Option::TARG_MACX_MODE)
- ret += " -macx";
- else if (Option::target_mode == Option::TARG_UNIX_MODE)
- ret += " -unix";
- else if (Option::target_mode == Option::TARG_WIN_MODE)
- ret += " -win32";
- }
//arguments
for(QStringList::Iterator it = Option::before_user_vars.begin();
@@ -2398,8 +2396,8 @@ void
MakefileGenerator::writeSubTargets(QTextStream &t, QList<MakefileGenerator::SubTarget*> targets, int flags)
{
// blasted includes
- QStringList &qeui = project->values("QMAKE_EXTRA_INCLUDES");
- for(QStringList::Iterator qeui_it = qeui.begin(); qeui_it != qeui.end(); ++qeui_it)
+ const QStringList &qeui = project->values("QMAKE_EXTRA_INCLUDES");
+ for (QStringList::ConstIterator qeui_it = qeui.begin(); qeui_it != qeui.end(); ++qeui_it)
t << "include " << (*qeui_it) << endl;
if (!(flags & SubTargetSkipDefaultVariables)) {
@@ -2609,16 +2607,16 @@ MakefileGenerator::writeSubTargets(QTextStream &t, QList<MakefileGenerator::SubT
}
// user defined targets
- QStringList &qut = project->values("QMAKE_EXTRA_TARGETS");
- for(QStringList::Iterator qut_it = qut.begin(); qut_it != qut.end(); ++qut_it) {
+ const QStringList &qut = project->values("QMAKE_EXTRA_TARGETS");
+ for (QStringList::ConstIterator qut_it = qut.begin(); qut_it != qut.end(); ++qut_it) {
QString targ = var((*qut_it) + ".target"),
cmd = var((*qut_it) + ".commands"), deps;
if(targ.isEmpty())
targ = (*qut_it);
t << endl;
- QStringList &deplist = project->values((*qut_it) + ".depends");
- for(QStringList::Iterator dep_it = deplist.begin(); dep_it != deplist.end(); ++dep_it) {
+ const QStringList &deplist = project->values((*qut_it) + ".depends");
+ for (QStringList::ConstIterator dep_it = deplist.begin(); dep_it != deplist.end(); ++dep_it) {
QString dep = var((*dep_it) + ".target");
if(dep.isEmpty())
dep = Option::fixPathToTargetOS(*dep_it, false);
@@ -2933,8 +2931,8 @@ MakefileGenerator::checkMultipleDefinition(const QString &f, const QString &w)
int slsh = f.lastIndexOf(Option::dir_sep);
if(slsh != -1)
file.remove(0, slsh + 1);
- QStringList &l = project->values(w);
- for(QStringList::Iterator val_it = l.begin(); val_it != l.end(); ++val_it) {
+ const QStringList &l = project->values(w);
+ for (QStringList::ConstIterator val_it = l.begin(); val_it != l.end(); ++val_it) {
QString file2((*val_it));
slsh = file2.lastIndexOf(Option::dir_sep);
if(slsh != -1)
@@ -2967,8 +2965,8 @@ MakefileGenerator::findFileForDep(const QMakeLocalFileName &dep, const QMakeLoca
QMakeLocalFileName ret;
if(!project->isEmpty("SKIP_DEPENDS")) {
bool found = false;
- QStringList &nodeplist = project->values("SKIP_DEPENDS");
- for(QStringList::Iterator it = nodeplist.begin();
+ const QStringList &nodeplist = project->values("SKIP_DEPENDS");
+ for (QStringList::ConstIterator it = nodeplist.begin();
it != nodeplist.end(); ++it) {
QRegExp regx((*it));
if(regx.indexIn(dep.local()) != -1) {
@@ -3016,8 +3014,8 @@ MakefileGenerator::findFileForDep(const QMakeLocalFileName &dep, const QMakeLoca
}
{ //is it from an EXTRA_TARGET
const QString dep_basename = dep.local().section(Option::dir_sep, -1);
- QStringList &qut = project->values("QMAKE_EXTRA_TARGETS");
- for(QStringList::Iterator it = qut.begin(); it != qut.end(); ++it) {
+ const QStringList &qut = project->values("QMAKE_EXTRA_TARGETS");
+ for (QStringList::ConstIterator it = qut.begin(); it != qut.end(); ++it) {
QString targ = var((*it) + ".target");
if(targ.isEmpty())
targ = (*it);
@@ -3035,10 +3033,10 @@ MakefileGenerator::findFileForDep(const QMakeLocalFileName &dep, const QMakeLoca
QString tmp_out = project->values((*it) + ".output").first();
if(tmp_out.isEmpty())
continue;
- QStringList &tmp = project->values((*it) + ".input");
- for(QStringList::Iterator it2 = tmp.begin(); it2 != tmp.end(); ++it2) {
- QStringList &inputs = project->values((*it2));
- for(QStringList::Iterator input = inputs.begin(); input != inputs.end(); ++input) {
+ const QStringList &tmp = project->values((*it) + ".input");
+ for (QStringList::ConstIterator it2 = tmp.begin(); it2 != tmp.end(); ++it2) {
+ const QStringList &inputs = project->values((*it2));
+ for (QStringList::ConstIterator input = inputs.begin(); input != inputs.end(); ++input) {
QString out = Option::fixPathToTargetOS(unescapeFilePath(replaceExtraCompilerVariables(tmp_out, (*input), QString())));
if(out == dep.real() || out.section(Option::dir_sep, -1) == dep_basename) {
ret = QMakeLocalFileName(fileFixify(out, qmake_getpwd(), Option::output_dir));
@@ -3075,8 +3073,7 @@ QString
MakefileGenerator::specdir()
{
if (spec.isEmpty())
- spec = fileFixify(project->isHostBuild()
- ? Option::mkfile::qmakespec : Option::mkfile::xqmakespec);
+ spec = fileFixify(project->specDir());
return spec;
}
@@ -3261,7 +3258,7 @@ MakefileGenerator::writePkgConfigFile()
t << "Libs: ";
QString pkgConfiglibDir;
QString pkgConfiglibName;
- if (Option::target_mode == Option::TARG_MACX_MODE && project->isActiveConfig("lib_bundle")) {
+ if (target_mode == TARG_MACX_MODE && project->isActiveConfig("lib_bundle")) {
pkgConfiglibDir = "-F${libdir}";
QString bundle;
if (!project->isEmpty("QMAKE_FRAMEWORK_BUNDLE_NAME"))
diff --git a/qmake/generators/makefile.h b/qmake/generators/makefile.h
index 2cf774e2bc..dc6714dd64 100644
--- a/qmake/generators/makefile.h
+++ b/qmake/generators/makefile.h
@@ -91,6 +91,8 @@ class MakefileGenerator : protected QMakeSourceFileInfo
mutable QHash<ReplaceExtraCompilerCacheKey, QString> extraCompilerVariablesCache;
protected:
+ enum TARG_MODE { TARG_UNIX_MODE, TARG_MACX_MODE, TARG_WIN_MODE } target_mode;
+
QStringList createObjectList(const QStringList &sources);
//makefile style generator functions
@@ -258,7 +260,7 @@ public:
virtual bool supportsMergedBuilds() { return false; }
virtual bool mergeBuildProject(MakefileGenerator * /*other*/) { return false; }
virtual bool openOutput(QFile &, const QString &build) const;
- virtual bool isWindowsShell() const { return Option::host_mode == Option::HOST_WIN_MODE; }
+ bool isWindowsShell() const { return Option::dir_sep == QLatin1String("\\"); }
};
inline void MakefileGenerator::setNoIO(bool o)
diff --git a/qmake/generators/metamakefile.cpp b/qmake/generators/metamakefile.cpp
index a1ab4ada75..d023d5e73e 100644
--- a/qmake/generators/metamakefile.cpp
+++ b/qmake/generators/metamakefile.cpp
@@ -104,7 +104,7 @@ BuildsMetaMakefileGenerator::init()
return false;
init_flag = true;
- const QStringList &builds = project->variables()["BUILDS"];
+ const QStringList &builds = project->values("BUILDS");
bool use_single_build = builds.isEmpty();
if(builds.count() > 1 && Option::output.fileName() == "-") {
use_single_build = true;
@@ -214,17 +214,6 @@ BuildsMetaMakefileGenerator::write(const QString &oldpwd)
if(!ret)
Option::output.remove();
}
-
- // debugging
- if(Option::debug_level) {
- debug_msg(1, "Dumping all variables:");
- 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());
- }
- }
}
return ret;
}
@@ -292,14 +281,7 @@ SubdirsMetaMakefileGenerator::init()
init_flag = true;
bool hasError = false;
- // It might make sense to bequeath the CONFIG option to the recursed
- // projects. OTOH, one would most likely have it in all projects anyway -
- // either through a qmakespec, a .qmake.cache or explicitly - as otherwise
- // running qmake in a subdirectory would have a different auto-recurse
- // setting than in parent directories.
- bool recurse = Option::recursive == Option::QMAKE_RECURSIVE_YES
- || (Option::recursive == Option::QMAKE_RECURSIVE_DEFAULT
- && project->isRecursive());
+ bool recurse = Option::recursive;
if (recurse && project->isActiveConfig("dont_recurse"))
recurse = false;
if(recurse) {
@@ -347,7 +329,7 @@ SubdirsMetaMakefileGenerator::init()
qmake_setpwd(sub->input_dir);
Option::output_dir = sub->output_dir;
bool tmpError = !sub_proj->read(subdir.fileName());
- if(!sub_proj->variables()["QMAKE_FAILED_REQUIREMENTS"].isEmpty()) {
+ if (!sub_proj->isEmpty("QMAKE_FAILED_REQUIREMENTS")) {
fprintf(stderr, "Project file(%s) not recursed because all requirements not met:\n\t%s\n",
subdir.fileName().toLatin1().constData(),
sub_proj->values("QMAKE_FAILED_REQUIREMENTS").join(" ").toLatin1().constData());
@@ -514,44 +496,5 @@ MetaMakefileGenerator::createMetaGenerator(QMakeProject *proj, const QString &na
#endif // QT_QMAKE_PARSER_ONLY
-bool
-MetaMakefileGenerator::modesForGenerator(const QString &gen,
- Option::HOST_MODE *host_mode, Option::TARG_MODE *target_mode)
-{
- if (gen == "UNIX") {
-#ifdef Q_OS_MAC
- *host_mode = Option::HOST_MACX_MODE;
- *target_mode = Option::TARG_MACX_MODE;
-#elif defined(Q_OS_WIN)
- *host_mode = Option::HOST_WIN_MODE;
- *target_mode = Option::TARG_UNIX_MODE;
-#else
- *host_mode = Option::HOST_UNIX_MODE;
- *target_mode = Option::TARG_UNIX_MODE;
-#endif
- } else if (gen == "MSVC.NET" || gen == "BMAKE" || gen == "MSBUILD") {
- *host_mode = Option::HOST_WIN_MODE;
- *target_mode = Option::TARG_WIN_MODE;
- } else if (gen == "MINGW") {
-#if defined(Q_OS_MAC)
- *host_mode = Option::HOST_MACX_MODE;
-#elif defined(Q_OS_UNIX)
- *host_mode = Option::HOST_UNIX_MODE;
-#else
- *host_mode = Option::HOST_WIN_MODE;
-#endif
- *target_mode = Option::TARG_WIN_MODE;
- } else if (gen == "PROJECTBUILDER" || gen == "XCODE") {
- *host_mode = Option::HOST_MACX_MODE;
- *target_mode = Option::TARG_MACX_MODE;
- } else if (gen == "GBUILD") {
- *host_mode = Option::HOST_UNIX_MODE;
- *target_mode = Option::TARG_INTEGRITY_MODE;
- } else {
- fprintf(stderr, "Unknown generator specified: %s\n", gen.toLatin1().constData());
- return false;
- }
- return true;
-}
QT_END_NAMESPACE
diff --git a/qmake/generators/metamakefile.h b/qmake/generators/metamakefile.h
index 4e2e7c502e..846a7989f1 100644
--- a/qmake/generators/metamakefile.h
+++ b/qmake/generators/metamakefile.h
@@ -42,8 +42,6 @@
#ifndef METAMAKEFILE_H
#define METAMAKEFILE_H
-#include <option.h>
-
#include <qlist.h>
#include <qstring.h>
@@ -67,9 +65,6 @@ public:
static MetaMakefileGenerator *createMetaGenerator(QMakeProject *proj, const QString &name, bool op=true, bool *success = 0);
static MakefileGenerator *createMakefileGenerator(QMakeProject *proj, bool noIO = false);
- static bool modesForGenerator(const QString &generator,
- Option::HOST_MODE *host_mode, Option::TARG_MODE *target_mode);
-
inline QMakeProject *projectFile() const { return project; }
virtual bool init() = 0;
diff --git a/qmake/generators/projectgenerator.cpp b/qmake/generators/projectgenerator.cpp
index 9a181a43f5..1e5bab669c 100644
--- a/qmake/generators/projectgenerator.cpp
+++ b/qmake/generators/projectgenerator.cpp
@@ -77,7 +77,7 @@ ProjectGenerator::init()
verifyCompilers();
project->read(QMakeProject::ReadFeatures);
- project->variables()["CONFIG"].clear();
+ project->values("CONFIG").clear();
QHash<QString, QStringList> &v = project->variables();
QString templ = Option::user_template.isEmpty() ? QString("app") : Option::user_template;
@@ -105,7 +105,7 @@ ProjectGenerator::init()
add_depend = true;
if(dir.right(1) != Option::dir_sep)
dir += Option::dir_sep;
- if(Option::recursive == Option::QMAKE_RECURSIVE_YES) {
+ if (Option::recursive) {
QStringList files = QDir(dir).entryList(QDir::Files);
for(int i = 0; i < (int)files.count(); i++) {
if(files[i] != "." && files[i] != "..")
@@ -132,7 +132,7 @@ ProjectGenerator::init()
dir = regex.left(s+1);
regex = regex.right(regex.length() - (s+1));
}
- if(Option::recursive == Option::QMAKE_RECURSIVE_YES) {
+ if (Option::recursive) {
QStringList entries = QDir(dir).entryList(QDir::Dirs);
for(int i = 0; i < (int)entries.count(); i++) {
if(entries[i] != "." && entries[i] != "..") {
@@ -187,7 +187,7 @@ ProjectGenerator::init()
subdirs.append(nd);
}
}
- if(Option::recursive == Option::QMAKE_RECURSIVE_YES) {
+ if (Option::recursive) {
QStringList dirs = QDir(newdir).entryList(QDir::Dirs);
for(int i = 0; i < (int)dirs.count(); i++) {
QString nd = fileFixify(newdir + QDir::separator() + dirs[i]);
@@ -224,8 +224,7 @@ ProjectGenerator::init()
}
}
}
- if(Option::recursive == Option::QMAKE_RECURSIVE_YES
- && !knownDirs.contains(newdir, Qt::CaseInsensitive))
+ if (Option::recursive && !knownDirs.contains(newdir, Qt::CaseInsensitive))
knownDirs.append(newdir);
}
}
@@ -297,13 +296,13 @@ ProjectGenerator::init()
}
//strip out files that are actually output from internal compilers (ie temporary files)
- const QStringList &quc = project->variables()["QMAKE_EXTRA_COMPILERS"];
+ const QStringList &quc = project->values("QMAKE_EXTRA_COMPILERS");
for(QStringList::ConstIterator it = quc.begin(); it != quc.end(); ++it) {
- QString tmp_out = project->variables()[(*it) + ".output"].first();
+ QString tmp_out = project->first((*it) + ".output");
if(tmp_out.isEmpty())
continue;
- QStringList var_out = project->variables()[(*it) + ".variable_out"];
+ QStringList var_out = project->values((*it) + ".variable_out");
bool defaults = var_out.isEmpty();
for(int i = 0; i < var_out.size(); ++i) {
QString v = var_out.at(i);
@@ -317,15 +316,15 @@ ProjectGenerator::init()
var_out << "HEADERS";
var_out << "FORMS";
}
- const QStringList &tmp = project->variables()[(*it) + ".input"];
+ const QStringList &tmp = project->values((*it) + ".input");
for(QStringList::ConstIterator it2 = tmp.begin(); it2 != tmp.end(); ++it2) {
- QStringList &inputs = project->variables()[(*it2)];
+ QStringList &inputs = project->values(*it2);
for(QStringList::Iterator input = inputs.begin(); input != inputs.end(); ++input) {
QString path = replaceExtraCompilerVariables(tmp_out, (*input), QString());
path = fixPathToQmake(path).section('/', -1);
for(int i = 0; i < var_out.size(); ++i) {
QString v = var_out.at(i);
- QStringList &list = project->variables()[v];
+ QStringList &list = project->values(v);
for(int src = 0; src < list.size(); ) {
if(list[src] == path || list[src].endsWith("/" + path))
list.removeAt(src);
@@ -356,7 +355,7 @@ ProjectGenerator::writeMakefile(QTextStream &t)
QString ofn = QFileInfo(static_cast<QFile *>(t.device())->fileName()).completeBaseName();
if (ofn.isEmpty() || ofn == "-")
ofn = "unknown";
- project->variables()["TARGET_ASSIGN"] = QStringList(ofn);
+ project->values("TARGET_ASSIGN") = QStringList(ofn);
t << getWritableVar("TARGET_ASSIGN")
<< getWritableVar("CONFIG", false)
@@ -384,8 +383,8 @@ ProjectGenerator::addConfig(const QString &cfg, bool add)
QString where = "CONFIG";
if(!add)
where = "CONFIG_REMOVE";
- if(!project->variables()[where].contains(cfg)) {
- project->variables()[where] += cfg;
+ if (!project->values(where).contains(cfg)) {
+ project->values(where) += cfg;
return true;
}
return false;
@@ -439,7 +438,7 @@ ProjectGenerator::addFile(QString file)
QString newfile = fixPathToQmake(fileFixify(file));
- QStringList &endList = project->variables()[where];
+ QStringList &endList = project->values(where);
if(!endList.contains(newfile, Qt::CaseInsensitive)) {
endList += newfile;
return true;
@@ -450,7 +449,7 @@ ProjectGenerator::addFile(QString file)
QString
ProjectGenerator::getWritableVar(const QString &v, bool)
{
- QStringList &vals = project->variables()[v];
+ QStringList &vals = project->values(v);
if(vals.isEmpty())
return "";
diff --git a/qmake/generators/unix/unixmake.cpp b/qmake/generators/unix/unixmake.cpp
index b8b4f1bbc5..31b059decc 100644
--- a/qmake/generators/unix/unixmake.cpp
+++ b/qmake/generators/unix/unixmake.cpp
@@ -491,9 +491,9 @@ UnixMakefileGenerator::findLibraries()
} else {
stub = opt.mid(2);
}
- } else if(Option::target_mode == Option::TARG_MACX_MODE && opt.startsWith("-F")) {
+ } else if (target_mode == TARG_MACX_MODE && opt.startsWith("-F")) {
frameworkdirs.append(QMakeLocalFileName(opt.right(opt.length()-2)));
- } else if(Option::target_mode == Option::TARG_MACX_MODE && opt.startsWith("-framework")) {
+ } else if (target_mode == TARG_MACX_MODE && opt.startsWith("-framework")) {
if(opt.length() > 11) {
opt = opt.mid(11);
} else {
@@ -612,11 +612,11 @@ UnixMakefileGenerator::processPrlFiles()
break;
}
}
- } else if(Option::target_mode == Option::TARG_MACX_MODE && opt.startsWith("-F")) {
+ } else if (target_mode == TARG_MACX_MODE && opt.startsWith("-F")) {
QMakeLocalFileName f(opt.right(opt.length()-2));
if(!frameworkdirs.contains(f))
frameworkdirs.append(f);
- } else if(Option::target_mode == Option::TARG_MACX_MODE && opt.startsWith("-framework")) {
+ } else if (target_mode == TARG_MACX_MODE && opt.startsWith("-framework")) {
if(opt.length() > 11)
opt = opt.mid(11);
else
@@ -655,7 +655,7 @@ UnixMakefileGenerator::processPrlFiles()
QString arch("default");
QString opt = l.at(lit).trimmed();
if(opt.startsWith("-")) {
- if (Option::target_mode == Option::TARG_MACX_MODE && opt.startsWith("-Xarch")) {
+ if (target_mode == TARG_MACX_MODE && opt.startsWith("-Xarch")) {
if (opt.length() > 7) {
arch = opt.mid(7);
opt = l.at(++lit);
@@ -663,7 +663,7 @@ UnixMakefileGenerator::processPrlFiles()
}
if(opt.startsWith("-L") ||
- (Option::target_mode == Option::TARG_MACX_MODE && opt.startsWith("-F"))) {
+ (target_mode == TARG_MACX_MODE && opt.startsWith("-F"))) {
if(!lflags[arch].contains(opt))
lflags[arch].append(opt);
} else if(opt.startsWith("-l") || opt == "-pthread") {
@@ -671,12 +671,12 @@ UnixMakefileGenerator::processPrlFiles()
if (lflags[arch].contains(opt))
lflags[arch].removeAll(opt);
lflags[arch].append(opt);
- } else if(Option::target_mode == Option::TARG_MACX_MODE && opt.startsWith("-framework")) {
+ } else if (target_mode == TARG_MACX_MODE && opt.startsWith("-framework")) {
if(opt.length() > 11)
opt = opt.mid(11);
else {
opt = l.at(++lit);
- if (Option::target_mode == Option::TARG_MACX_MODE && opt.startsWith("-Xarch"))
+ if (target_mode == TARG_MACX_MODE && opt.startsWith("-Xarch"))
opt = l.at(++lit); // The user has done the right thing and prefixed each part
}
bool found = false;
@@ -742,7 +742,7 @@ UnixMakefileGenerator::defaultInstall(const QString &t)
QStringList links;
QString target="$(TARGET)";
- QStringList &targets = project->values(t + ".targets");
+ const QStringList &targets = project->values(t + ".targets");
if(!project->isEmpty("QMAKE_BUNDLE")) {
target = project->first("QMAKE_BUNDLE");
bundle = true;
@@ -838,8 +838,7 @@ UnixMakefileGenerator::defaultInstall(const QString &t)
uninst.append("-$(DEL_FILE) \"" + dst_targ + "\"");
if(!links.isEmpty()) {
for(int i = 0; i < links.size(); ++i) {
- if(Option::target_mode == Option::TARG_UNIX_MODE ||
- Option::target_mode == Option::TARG_MACX_MODE) {
+ if (target_mode == TARG_UNIX_MODE || target_mode == TARG_MACX_MODE) {
QString link = Option::fixPathToTargetOS(destdir + links[i], false);
int lslash = link.lastIndexOf(Option::dir_sep);
if(lslash != -1)
diff --git a/qmake/generators/unix/unixmake2.cpp b/qmake/generators/unix/unixmake2.cpp
index 490b76e494..f13699f0f7 100644
--- a/qmake/generators/unix/unixmake2.cpp
+++ b/qmake/generators/unix/unixmake2.cpp
@@ -82,7 +82,7 @@ UnixMakefileGenerator::writeMakefile(QTextStream &t)
writeHeader(t);
if(!project->values("QMAKE_FAILED_REQUIREMENTS").isEmpty()) {
t << "QMAKE = " << var("QMAKE_QMAKE") << endl;
- QStringList &qut = project->values("QMAKE_EXTRA_TARGETS");
+ const QStringList &qut = project->values("QMAKE_EXTRA_TARGETS");
for(QStringList::ConstIterator it = qut.begin(); it != qut.end(); ++it)
t << *it << " ";
t << "first all clean install distclean uninstall qmake_all:" << "\n\t"
@@ -190,11 +190,13 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t)
t << "SOURCES = " << valList(escapeFilePaths(project->values("SOURCES"))) << " "
<< valList(escapeFilePaths(project->values("GENERATED_SOURCES"))) << endl;
if(do_incremental) {
- QStringList &objs = project->values("OBJECTS"), &incrs = project->values("QMAKE_INCREMENTAL"), incrs_out;
+ const QStringList &objs = project->values("OBJECTS");
+ const QStringList &incrs = project->values("QMAKE_INCREMENTAL");
+ QStringList incrs_out;
t << "OBJECTS = ";
- for(QStringList::Iterator objit = objs.begin(); objit != objs.end(); ++objit) {
+ for (QStringList::ConstIterator objit = objs.begin(); objit != objs.end(); ++objit) {
bool increment = false;
- for(QStringList::Iterator incrit = incrs.begin(); incrit != incrs.end(); ++incrit) {
+ for (QStringList::ConstIterator incrit = incrs.begin(); incrit != incrs.end(); ++incrit) {
if((*objit).indexOf(QRegExp((*incrit), Qt::CaseSensitive,
QRegExp::Wildcard)) != -1) {
increment = true;
@@ -247,8 +249,8 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t)
t << endl;
// blasted includes
- QStringList &qeui = project->values("QMAKE_EXTRA_INCLUDES");
- QStringList::Iterator it;
+ const QStringList &qeui = project->values("QMAKE_EXTRA_INCLUDES");
+ QStringList::ConstIterator it;
for(it = qeui.begin(); it != qeui.end(); ++it)
t << "include " << (*it) << endl;
@@ -301,8 +303,8 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t)
QString src[] = { "SOURCES", "GENERATED_SOURCES", QString() };
for(int x = 0; !src[x].isNull(); x++) {
- QStringList &l = project->values(src[x]);
- for(QStringList::Iterator it = l.begin(); it != l.end(); ++it) {
+ const QStringList &l = project->values(src[x]);
+ for (QStringList::ConstIterator it = l.begin(); it != l.end(); ++it) {
if(!(*it).isEmpty()) {
QString d_file;
for(QStringList::Iterator cit = Option::c_ext.begin();
@@ -343,15 +345,15 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t)
if(!project->isEmpty("SUBLIBS_DIR"))
libdir = project->first("SUBLIBS_DIR");
t << "SUBLIBS = ";
- QStringList &l = project->values("SUBLIBS");
- for(QStringList::Iterator it = l.begin(); it != l.end(); ++it)
+ const QStringList &l = project->values("SUBLIBS");
+ for (QStringList::ConstIterator it = l.begin(); it != l.end(); ++it)
t << libdir << project->first("QMAKE_PREFIX_STATICLIB") << (*it) << "."
<< project->first("QMAKE_EXTENSION_STATICLIB") << " ";
t << endl << endl;
}
if(project->isActiveConfig("depend_prl") && !project->isEmpty("QMAKE_PRL_INTERNAL_FILES")) {
- QStringList &l = project->values("QMAKE_PRL_INTERNAL_FILES");
- QStringList::Iterator it;
+ const QStringList &l = project->values("QMAKE_PRL_INTERNAL_FILES");
+ QStringList::ConstIterator it;
for(it = l.begin(); it != l.end(); ++it) {
QMakeMetaInfo libinfo;
if(libinfo.readLib((*it)) && !libinfo.isEmpty("QMAKE_PRL_BUILD_DIR")) {
@@ -886,7 +888,7 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t)
QString libdir = "tmp/";
if(!project->isEmpty("SUBLIBS_DIR"))
libdir = project->first("SUBLIBS_DIR");
- QStringList &l = project->values("SUBLIBS");
+ const QStringList &l = project->values("SUBLIBS");
for(it = l.begin(); it != l.end(); ++it)
t << libdir << project->first("QMAKE_PREFIX_STATICLIB") << (*it) << "."
<< project->first("QMAKE_EXTENSION_STATICLIB") << ":\n\t"
diff --git a/qmake/generators/win32/borland_bmake.cpp b/qmake/generators/win32/borland_bmake.cpp
index 4c4ddf642e..110e2eafa6 100644
--- a/qmake/generators/win32/borland_bmake.cpp
+++ b/qmake/generators/win32/borland_bmake.cpp
@@ -57,7 +57,7 @@ BorlandMakefileGenerator::writeMakefile(QTextStream &t)
{
writeHeader(t);
if(!project->values("QMAKE_FAILED_REQUIREMENTS").isEmpty()) {
- QStringList &qut = project->values("QMAKE_EXTRA_TARGETS");
+ const QStringList &qut = project->values("QMAKE_EXTRA_TARGETS");
for(QStringList::ConstIterator it = qut.begin(); it != qut.end(); ++it)
t << *it << " ";
t << "all first clean:" << "\n\t"
diff --git a/qmake/generators/win32/mingw_make.cpp b/qmake/generators/win32/mingw_make.cpp
index e62221e636..e7dbc6a274 100644
--- a/qmake/generators/win32/mingw_make.cpp
+++ b/qmake/generators/win32/mingw_make.cpp
@@ -51,21 +51,12 @@ QT_BEGIN_NAMESPACE
MingwMakefileGenerator::MingwMakefileGenerator() : Win32MakefileGenerator(), init_flag(false)
{
- if (Option::shellPath.isEmpty())
+ if (isWindowsShell())
quote = "\"";
else
quote = "'";
}
-bool MingwMakefileGenerator::isWindowsShell() const
-{
-#ifdef Q_OS_WIN
- return Option::shellPath.isEmpty();
-#else
- return Win32MakefileGenerator::isWindowsShell();
-#endif
-}
-
QString MingwMakefileGenerator::escapeDependencyPath(const QString &path) const
{
QString ret = path;
@@ -91,8 +82,8 @@ bool MingwMakefileGenerator::findLibraries(const QString &where)
QList<QMakeLocalFileName> dirs;
{
- QStringList &libpaths = project->values("QMAKE_LIBDIR");
- for(QStringList::Iterator libpathit = libpaths.begin();
+ const QStringList &libpaths = project->values("QMAKE_LIBDIR");
+ for (QStringList::ConstIterator libpathit = libpaths.begin();
libpathit != libpaths.end(); ++libpathit)
dirs.append(QMakeLocalFileName((*libpathit)));
}
@@ -148,7 +139,7 @@ bool MingwMakefileGenerator::writeMakefile(QTextStream &t)
if(Option::mkfile::do_stub_makefile) {
t << "QMAKE = " << var("QMAKE_QMAKE") << endl;
- QStringList &qut = project->values("QMAKE_EXTRA_TARGETS");
+ const QStringList &qut = project->values("QMAKE_EXTRA_TARGETS");
for(QStringList::ConstIterator it = qut.begin(); it != qut.end(); ++it)
t << *it << " ";
t << "first all clean install distclean uninstall: qmake" << endl
@@ -344,8 +335,8 @@ void MingwMakefileGenerator::writeIncPart(QTextStream &t)
{
t << "INCPATH = ";
- QStringList &incs = project->values("INCLUDEPATH");
- for(QStringList::Iterator incit = incs.begin(); incit != incs.end(); ++incit) {
+ const QStringList &incs = project->values("INCLUDEPATH");
+ for (QStringList::ConstIterator incit = incs.begin(); incit != incs.end(); ++incit) {
QString inc = (*incit);
inc.replace(QRegExp("\\\\$"), "");
inc.replace(QRegExp("\""), "");
diff --git a/qmake/generators/win32/mingw_make.h b/qmake/generators/win32/mingw_make.h
index 08d87cb916..88832dde76 100644
--- a/qmake/generators/win32/mingw_make.h
+++ b/qmake/generators/win32/mingw_make.h
@@ -57,7 +57,6 @@ protected:
bool writeMakefile(QTextStream &);
void init();
private:
- bool isWindowsShell() const;
void writeMingwParts(QTextStream &);
void writeIncPart(QTextStream &t);
void writeLibsPart(QTextStream &t);
diff --git a/qmake/generators/win32/msvc_nmake.cpp b/qmake/generators/win32/msvc_nmake.cpp
index adf8883b01..0107f025eb 100644
--- a/qmake/generators/win32/msvc_nmake.cpp
+++ b/qmake/generators/win32/msvc_nmake.cpp
@@ -59,8 +59,8 @@ NmakeMakefileGenerator::writeMakefile(QTextStream &t)
{
writeHeader(t);
if(!project->values("QMAKE_FAILED_REQUIREMENTS").isEmpty()) {
- QStringList &qut = project->values("QMAKE_EXTRA_TARGETS");
- for(QStringList::ConstIterator it = qut.begin(); it != qut.end(); ++it)
+ const QStringList &qut = project->values("QMAKE_EXTRA_TARGETS");
+ for (QStringList::ConstIterator it = qut.begin(); it != qut.end(); ++it)
t << *it << " ";
t << "all first clean:" << "\n\t"
<< "@echo \"Some of the required modules ("
@@ -332,8 +332,8 @@ void NmakeMakefileGenerator::writeImplicitRulesPart(QTextStream &t)
}
QString srcs[] = { QString("SOURCES"), QString("GENERATED_SOURCES"), QString() };
for(int x = 0; !srcs[x].isNull(); x++) {
- QStringList &l = project->values(srcs[x]);
- for(QStringList::Iterator sit = l.begin(); sit != l.end(); ++sit) {
+ const QStringList &l = project->values(srcs[x]);
+ for (QStringList::ConstIterator sit = l.begin(); sit != l.end(); ++sit) {
QString sep = "\\";
if((*sit).indexOf(sep) == -1)
sep = "/";
diff --git a/qmake/generators/win32/msvc_objectmodel.cpp b/qmake/generators/win32/msvc_objectmodel.cpp
index b474dac7a5..daaef0fbc4 100644
--- a/qmake/generators/win32/msvc_objectmodel.cpp
+++ b/qmake/generators/win32/msvc_objectmodel.cpp
@@ -2181,11 +2181,11 @@ bool VCFilter::addExtraCompiler(const VCFilterFile &info)
// All information about the extra compiler
QString tmp_out = Project->project->first(extraCompilerName + ".output");
- QString tmp_cmd = Project->project->variables()[extraCompilerName + ".commands"].join(" ");
- QString tmp_cmd_name = Project->project->variables()[extraCompilerName + ".name"].join(" ");
- QStringList tmp_dep = Project->project->variables()[extraCompilerName + ".depends"];
- QString tmp_dep_cmd = Project->project->variables()[extraCompilerName + ".depend_command"].join(" ");
- QStringList configs = Project->project->variables()[extraCompilerName + ".CONFIG"];
+ QString tmp_cmd = Project->project->values(extraCompilerName + ".commands").join(" ");
+ QString tmp_cmd_name = Project->project->values(extraCompilerName + ".name").join(" ");
+ QStringList tmp_dep = Project->project->values(extraCompilerName + ".depends");
+ QString tmp_dep_cmd = Project->project->values(extraCompilerName + ".depend_command").join(" ");
+ QStringList configs = Project->project->values(extraCompilerName + ".CONFIG");
bool combined = configs.indexOf("combine") != -1;
QString cmd, cmd_name, out;
@@ -2248,9 +2248,9 @@ bool VCFilter::addExtraCompiler(const VCFilterFile &info)
// Command for file
if (combined) {
// Add dependencies for each file
- QStringList tmp_in = Project->project->variables()[extraCompilerName + ".input"];
+ QStringList tmp_in = Project->project->values(extraCompilerName + ".input");
for (int a = 0; a < tmp_in.count(); ++a) {
- const QStringList &files = Project->project->variables()[tmp_in.at(a)];
+ const QStringList &files = Project->project->values(tmp_in.at(a));
for (int b = 0; b < files.count(); ++b) {
deps += Project->findDependencies(files.at(b));
inputs += Option::fixPathToTargetOS(files.at(b), false);
diff --git a/qmake/generators/win32/msvc_objectmodel.h b/qmake/generators/win32/msvc_objectmodel.h
index 37d923f9c1..0d1e11b277 100644
--- a/qmake/generators/win32/msvc_objectmodel.h
+++ b/qmake/generators/win32/msvc_objectmodel.h
@@ -475,7 +475,7 @@ protected:
virtual ~VCToolBase(){}
virtual bool parseOption(const char* option) = 0;
public:
- void parseOptions(QStringList& options) {
+ void parseOptions(const QStringList& options) {
for (QStringList::ConstIterator it=options.begin(); (it!=options.end()); it++)
parseOption((*it).toLatin1().constData());
}
diff --git a/qmake/generators/win32/msvc_vcproj.cpp b/qmake/generators/win32/msvc_vcproj.cpp
index b228917692..606fee6dd0 100644
--- a/qmake/generators/win32/msvc_vcproj.cpp
+++ b/qmake/generators/win32/msvc_vcproj.cpp
@@ -379,12 +379,12 @@ QUuid VcprojGenerator::increaseUUID(const QUuid &id)
QStringList VcprojGenerator::collectSubDirs(QMakeProject *proj)
{
QStringList subdirs;
- QStringList tmp_proj_subdirs = proj->variables()["SUBDIRS"];
+ QStringList tmp_proj_subdirs = proj->values("SUBDIRS");
for(int x = 0; x < tmp_proj_subdirs.size(); ++x) {
QString tmpdir = tmp_proj_subdirs.at(x);
const QString tmpdirConfig = tmpdir + QStringLiteral(".CONFIG");
if (!proj->isEmpty(tmpdirConfig)) {
- const QStringList config = proj->variables().value(tmpdirConfig);
+ const QStringList config = proj->values(tmpdirConfig);
if (config.contains(QStringLiteral("no_default_target")))
continue; // Ignore this sub-dir
}
@@ -463,7 +463,7 @@ void VcprojGenerator::writeSubDirs(QTextStream &t)
}
if(tmp_proj.read(fn)) {
// Check if all requirements are fulfilled
- if(!tmp_proj.variables()["QMAKE_FAILED_REQUIREMENTS"].isEmpty()) {
+ if (!tmp_proj.isEmpty("QMAKE_FAILED_REQUIREMENTS")) {
fprintf(stderr, "Project file(%s) not added to Solution because all requirements not met:\n\t%s\n",
fn.toLatin1().constData(), tmp_proj.values("QMAKE_FAILED_REQUIREMENTS").join(" ").toLatin1().constData());
continue;
@@ -483,16 +483,6 @@ void VcprojGenerator::writeSubDirs(QTextStream &t)
tmp_vcproj.setProjectFile(&tmp_proj);
Option::qmake_mode = old_mode;
Option::output_dir = old_output_dir;
- if(Option::debug_level) {
- debug_msg(1, "Dumping all variables:");
- 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(),
- it.value().join(" :: ").toLatin1().constData());
- }
- }
// We assume project filename is [QMAKE_PROJECT_NAME].vcproj
QString vcproj = unescapeFilePath(tmp_vcproj.project->first("QMAKE_PROJECT_NAME") + project->first("VCPROJ_EXTENSION"));
@@ -536,17 +526,17 @@ void VcprojGenerator::writeSubDirs(QTextStream &t)
newDep->target = newDep->target.left(newDep->target.length()-3) + "lib";
// All ActiveQt Server projects are dependent on idc.exe
- if(tmp_proj.variables()["CONFIG"].contains("qaxserver"))
+ if (tmp_proj.values("CONFIG").contains("qaxserver"))
newDep->dependencies << "idc.exe";
// All extra compilers which has valid input are considered dependencies
- const QStringList &quc = tmp_proj.variables()["QMAKE_EXTRA_COMPILERS"];
+ const QStringList &quc = tmp_proj.values("QMAKE_EXTRA_COMPILERS");
for(QStringList::ConstIterator it = quc.constBegin(); it != quc.constEnd(); ++it) {
- const QStringList &invar = tmp_proj.variables().value((*it) + ".input");
+ const QStringList &invar = tmp_proj.values(*it + ".input");
for(QStringList::ConstIterator iit = invar.constBegin(); iit != invar.constEnd(); ++iit) {
- const QStringList fileList = tmp_proj.variables().value(*iit);
+ const QStringList fileList = tmp_proj.values(*iit);
if (!fileList.isEmpty()) {
- const QStringList &cmdsParts = tmp_proj.variables().value((*it) + ".commands");
+ const QStringList &cmdsParts = tmp_proj.values(*it + ".commands");
bool startOfLine = true;
foreach(QString cmd, cmdsParts) {
if (!startOfLine) {
@@ -575,11 +565,11 @@ void VcprojGenerator::writeSubDirs(QTextStream &t)
// Add all unknown libs to the deps
QStringList where = QStringList() << "QMAKE_LIBS" << "QMAKE_LIBS_PRIVATE";
if(!tmp_proj.isEmpty("QMAKE_INTERNAL_PRL_LIBS"))
- where = tmp_proj.variables()["QMAKE_INTERNAL_PRL_LIBS"];
- for(QStringList::iterator wit = where.begin();
+ where = tmp_proj.values("QMAKE_INTERNAL_PRL_LIBS");
+ for (QStringList::ConstIterator wit = where.begin();
wit != where.end(); ++wit) {
- QStringList &l = tmp_proj.variables()[(*wit)];
- for(QStringList::Iterator it = l.begin(); it != l.end(); ++it) {
+ const QStringList &l = tmp_proj.values(*wit);
+ for (QStringList::ConstIterator it = l.begin(); it != l.end(); ++it) {
QString opt = (*it);
if(!opt.startsWith("/") && // Not a switch
opt != newDep->target && // Not self
@@ -767,10 +757,10 @@ void VcprojGenerator::init()
// unless the compiler is configure as a combined stage, then use the first one
const QStringList &quc = project->values("QMAKE_EXTRA_COMPILERS");
for(QStringList::ConstIterator it = quc.constBegin(); it != quc.constEnd(); ++it) {
- const QStringList &invar = project->variables().value((*it) + ".input");
+ const QStringList &invar = project->values(*it + ".input");
const QString compiler_out = project->first((*it) + ".output");
for(QStringList::ConstIterator iit = invar.constBegin(); iit != invar.constEnd(); ++iit) {
- QStringList fileList = project->variables().value(*iit);
+ QStringList fileList = project->values(*iit);
if (!fileList.isEmpty()) {
if (project->values((*it) + ".CONFIG").indexOf("combine") != -1)
fileList = QStringList(fileList.first());
@@ -1112,7 +1102,7 @@ void VcprojGenerator::initDeploymentTool()
// Only deploy Qt libs for shared build
if (!project->values("QMAKE_QT_DLL").isEmpty()) {
- QStringList& arg = project->values("MSVCPROJ_LIBS");
+ const QStringList &arg = project->values("MSVCPROJ_LIBS");
for (QStringList::ConstIterator it = arg.constBegin(); it != arg.constEnd(); ++it) {
if (it->contains(project->first("QMAKE_LIBDIR"))) {
QString dllName = *it;
@@ -1471,8 +1461,8 @@ void VcprojGenerator::initOld()
// $$QMAKE.. -> $$MSVCPROJ.. -------------------------------------
project->values("MSVCPROJ_LIBS") += project->values("QMAKE_LIBS");
project->values("MSVCPROJ_LIBS") += project->values("QMAKE_LIBS_PRIVATE");
- QStringList &incs = project->values("INCLUDEPATH");
- for(QStringList::Iterator incit = incs.begin(); incit != incs.end(); ++incit) {
+ const QStringList &incs = project->values("INCLUDEPATH");
+ for (QStringList::ConstIterator incit = incs.begin(); incit != incs.end(); ++incit) {
QString inc = (*incit);
if (!inc.startsWith('"') && !inc.endsWith('"'))
inc = QString("\"%1\"").arg(inc); // Quote all paths if not quoted already
diff --git a/qmake/generators/win32/winmakefile.cpp b/qmake/generators/win32/winmakefile.cpp
index 895c331b21..319cd68338 100644
--- a/qmake/generators/win32/winmakefile.cpp
+++ b/qmake/generators/win32/winmakefile.cpp
@@ -110,8 +110,8 @@ Win32MakefileGenerator::findLibraries(const QString &where)
QStringList &l = project->values(where);
QList<QMakeLocalFileName> dirs;
{
- QStringList &libpaths = project->values("QMAKE_LIBDIR");
- for(QStringList::Iterator libpathit = libpaths.begin();
+ const QStringList &libpaths = project->values("QMAKE_LIBDIR");
+ for (QStringList::ConstIterator libpathit = libpaths.begin();
libpathit != libpaths.end(); ++libpathit)
dirs.append(QMakeLocalFileName((*libpathit)));
}
@@ -223,8 +223,8 @@ Win32MakefileGenerator::processPrlFiles()
QHash<QString, bool> processed;
QList<QMakeLocalFileName> libdirs;
{
- QStringList &libpaths = project->values("QMAKE_LIBDIR");
- for(QStringList::Iterator libpathit = libpaths.begin(); libpathit != libpaths.end(); ++libpathit)
+ const QStringList &libpaths = project->values("QMAKE_LIBDIR");
+ for (QStringList::ConstIterator libpathit = libpaths.begin(); libpathit != libpaths.end(); ++libpathit)
libdirs.append(QMakeLocalFileName((*libpathit)));
}
for(bool ret = false; true; ret = false) {
@@ -730,8 +730,8 @@ void Win32MakefileGenerator::writeStandardParts(QTextStream &t)
if(!project->isEmpty("TRANSLATIONS"))
dist_files << var("TRANSLATIONS");
if(!project->isEmpty("FORMS")) {
- QStringList &forms = project->values("FORMS");
- for(QStringList::Iterator formit = forms.begin(); formit != forms.end(); ++formit) {
+ const QStringList &forms = project->values("FORMS");
+ for (QStringList::ConstIterator formit = forms.begin(); formit != forms.end(); ++formit) {
QString ui_h = fileFixify((*formit) + Option::h_ext.first());
if(exists(ui_h))
dist_files << ui_h;