summaryrefslogtreecommitdiffstats
path: root/qmake/generators
diff options
context:
space:
mode:
authorQt Continuous Integration System <qt-info@nokia.com>2010-08-26 21:37:46 (GMT)
committerQt Continuous Integration System <qt-info@nokia.com>2010-08-26 21:37:46 (GMT)
commita5ac66200f77fd09d4c4ee5af3a9380efce871ad (patch)
tree46429b3c1c7835d120e4653f863e57079c3fc47e /qmake/generators
parentef4c65fc364a0262389c0497092a0fa5e1f7d4c3 (diff)
parentfe8e118c41c6243ace972647934c90b7f937f60e (diff)
downloadQt-a5ac66200f77fd09d4c4ee5af3a9380efce871ad.zip
Qt-a5ac66200f77fd09d4c4ee5af3a9380efce871ad.tar.gz
Qt-a5ac66200f77fd09d4c4ee5af3a9380efce871ad.tar.bz2
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into 4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1: (61 commits) Autotest: don't use Q_FUNC_INFO for testing which method got called fix generated makefile dependencies Cocoa: Demo browser can get stuck after closing modal dialog Restore default if to system default on session close. tst_qmake doesn't need QtGui Use the full path to qmake in the qmake unit test qdoc: Fixed erroneous links to QML basic types. Fixed item view background color in Gtk style scope fixes and clutter reduction for sql driver projects I don't know why some linkers can't call this function, so comment it out. QNetworkSession::close() method now send closed() signal while faking disconnection. Add the missing license headers to the QString benchmark data Fix building of qsimd.cpp on Windows CE Use QElapsedTimer for the benchlib tests. Properly implement the CPU feature disabling in qsimd.cpp. Report the detected CPU features in the corelib boilerplate Detect CPU features on ARM by reading the ELF auxvec. Split the CPU-detection code into multiple functions for readability Fixed delivering gestures to a toplevel widget. Unroll the SSSE3 code even more to avoid the need to keep an extra variable for inverting the result ...
Diffstat (limited to 'qmake/generators')
-rw-r--r--qmake/generators/makefile.cpp41
-rw-r--r--qmake/generators/win32/msbuild_objectmodel.cpp3
-rw-r--r--qmake/generators/win32/msvc_objectmodel.cpp3
-rw-r--r--qmake/generators/win32/msvc_vcxproj.cpp1
4 files changed, 36 insertions, 12 deletions
diff --git a/qmake/generators/makefile.cpp b/qmake/generators/makefile.cpp
index 852471d..c7b1473 100644
--- a/qmake/generators/makefile.cpp
+++ b/qmake/generators/makefile.cpp
@@ -466,14 +466,37 @@ MakefileGenerator::init()
if(!project->isEmpty("QMAKE_SUBSTITUTES")) {
const QStringList &subs = v["QMAKE_SUBSTITUTES"];
for(int i = 0; i < subs.size(); ++i) {
- if(!subs.at(i).endsWith(".in")) {
- warn_msg(WarnLogic, "Substitute '%s' does not end with '.in'",
- subs.at(i).toLatin1().constData());
- continue;
+ QString inn = subs.at(i) + ".input", outn = subs.at(i) + ".output";
+ if (v.contains(inn) || v.contains(outn)) {
+ if (!v.contains(inn) || !v.contains(outn)) {
+ warn_msg(WarnLogic, "Substitute '%s' has only one of .input and .output",
+ subs.at(i).toLatin1().constData());
+ continue;
+ }
+ const QStringList &tinn = v[inn], &toutn = v[outn];
+ if (tinn.length() != 1) {
+ warn_msg(WarnLogic, "Substitute '%s.input' does not have exactly one value",
+ subs.at(i).toLatin1().constData());
+ continue;
+ }
+ if (toutn.length() != 1) {
+ warn_msg(WarnLogic, "Substitute '%s.output' does not have exactly one value",
+ subs.at(i).toLatin1().constData());
+ continue;
+ }
+ inn = tinn.first();
+ outn = toutn.first();
+ } else {
+ inn = subs.at(i);
+ if(!inn.endsWith(".in")) {
+ warn_msg(WarnLogic, "Substitute '%s' does not end with '.in'",
+ inn.toLatin1().constData());
+ continue;
+ }
+ outn = inn.left(inn.length()-3);
}
- QFile in(fileFixify(subs.at(i)));
- QFile out(fileFixify(subs.at(i).left(subs.at(i).length()-3),
- qmake_getpwd(), Option::output_dir));
+ QFile in(fileFixify(inn));
+ QFile out(fileFixify(outn, qmake_getpwd(), Option::output_dir));
if(in.open(QFile::ReadOnly)) {
QString contents;
QStack<int> state;
@@ -528,7 +551,7 @@ MakefileGenerator::init()
if(out.exists() && out.open(QFile::ReadOnly)) {
QString old = QString::fromUtf8(out.readAll());
if(contents == old) {
- v["QMAKE_INTERNAL_INCLUDED_FILES"].append(subs.at(i));
+ v["QMAKE_INTERNAL_INCLUDED_FILES"].append(in.fileName());
continue;
}
out.close();
@@ -540,7 +563,7 @@ MakefileGenerator::init()
}
mkdir(QFileInfo(out).absolutePath());
if(out.open(QFile::WriteOnly)) {
- v["QMAKE_INTERNAL_INCLUDED_FILES"].append(subs.at(i));
+ v["QMAKE_INTERNAL_INCLUDED_FILES"].append(in.fileName());
out.write(contents.toUtf8());
} else {
warn_msg(WarnLogic, "Cannot open substitute for output '%s'",
diff --git a/qmake/generators/win32/msbuild_objectmodel.cpp b/qmake/generators/win32/msbuild_objectmodel.cpp
index 17c4d5a..2505056 100644
--- a/qmake/generators/win32/msbuild_objectmodel.cpp
+++ b/qmake/generators/win32/msbuild_objectmodel.cpp
@@ -1573,7 +1573,8 @@ bool VCXLinkerTool::parseOption(const char* option)
break;
case 0x0034160: // /MAP[:filename]
GenerateMapFile = _True;
- MapFileName = option+5;
+ if (option[4] == ':')
+ MapFileName = option+5;
break;
case 0x164e1ef: // /MAPINFO:{EXPORTS}
if(*(option+9) == 'E')
diff --git a/qmake/generators/win32/msvc_objectmodel.cpp b/qmake/generators/win32/msvc_objectmodel.cpp
index 1e060a0..980e686 100644
--- a/qmake/generators/win32/msvc_objectmodel.cpp
+++ b/qmake/generators/win32/msvc_objectmodel.cpp
@@ -1430,7 +1430,8 @@ bool VCLinkerTool::parseOption(const char* option)
break;
case 0x0034160: // /MAP[:filename]
GenerateMapFile = _True;
- MapFileName = option+5;
+ if (option[4] == ':')
+ MapFileName = option+5;
break;
case 0x164e1ef: // /MAPINFO:{EXPORTS|LINES}
if(*(option+9) == 'E')
diff --git a/qmake/generators/win32/msvc_vcxproj.cpp b/qmake/generators/win32/msvc_vcxproj.cpp
index f68a435..271d9ae 100644
--- a/qmake/generators/win32/msvc_vcxproj.cpp
+++ b/qmake/generators/win32/msvc_vcxproj.cpp
@@ -202,7 +202,6 @@ void VcxprojGenerator::initConfiguration()
conf.CharacterSet = "NotSet";
break;
}
- conf.CharacterSet = charSet(temp.isEmpty() ? (short)charSetNotSet : temp.toShort());
}
conf.DeleteExtensionsOnClean = project->first("DeleteExtensionsOnClean");
conf.ImportLibrary = conf.linker.ImportLibrary;