summaryrefslogtreecommitdiffstats
path: root/qmake
diff options
context:
space:
mode:
Diffstat (limited to 'qmake')
-rw-r--r--qmake/Makefile.unix4
-rw-r--r--qmake/generators/win32/mingw_make.cpp5
-rw-r--r--qmake/generators/win32/mingw_make.h1
-rw-r--r--qmake/generators/win32/msbuild_objectmodel.cpp8
-rw-r--r--qmake/generators/win32/msvc_objectmodel.cpp3
-rw-r--r--qmake/generators/win32/winmakefile.cpp18
-rw-r--r--qmake/generators/win32/winmakefile.h1
-rw-r--r--qmake/qmake.pri4
8 files changed, 36 insertions, 8 deletions
diff --git a/qmake/Makefile.unix b/qmake/Makefile.unix
index 10c72bf28f..74705bddfa 100644
--- a/qmake/Makefile.unix
+++ b/qmake/Makefile.unix
@@ -74,6 +74,7 @@ DEPEND_SRC = \
$(SOURCE_PATH)/src/corelib/tools/qlocale_win.cpp \
$(SOURCE_PATH)/src/corelib/tools/qlinkedlist.cpp \
$(SOURCE_PATH)/src/corelib/tools/qhash.cpp $(SOURCE_PATH)/src/corelib/kernel/qcore_mac.cpp \
+ $(SOURCE_PATH)/src/corelib/kernel/qcore_mac_objc.mm \
$(SOURCE_PATH)/src/corelib/io/qtemporaryfile.cpp $(SOURCE_PATH)/src/corelib/kernel/qmetatype.cpp \
$(SOURCE_PATH)/src/corelib/io/qsettings.cpp $(SOURCE_PATH)/src/corelib/kernel/qvariant.cpp \
$(SOURCE_PATH)/src/corelib/global/qlibraryinfo.cpp $(SOURCE_PATH)/src/corelib/tools/qcryptographichash.cpp \
@@ -269,6 +270,9 @@ qmetatype.o: $(SOURCE_PATH)/src/corelib/kernel/qmetatype.cpp
qcore_mac.o: $(SOURCE_PATH)/src/corelib/kernel/qcore_mac.cpp
$(CXX) -c -o $@ $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/kernel/qcore_mac.cpp
+qcore_mac_objc.o: $(SOURCE_PATH)/src/corelib/kernel/qcore_mac_objc.mm
+ $(CXX) -c -o $@ $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/kernel/qcore_mac_objc.mm
+
qutfcodec.o: $(SOURCE_PATH)/src/corelib/codecs/qutfcodec.cpp
$(CXX) -c -o $@ $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/codecs/qutfcodec.cpp
diff --git a/qmake/generators/win32/mingw_make.cpp b/qmake/generators/win32/mingw_make.cpp
index 3c53421fc4..42431f0131 100644
--- a/qmake/generators/win32/mingw_make.cpp
+++ b/qmake/generators/win32/mingw_make.cpp
@@ -66,6 +66,11 @@ QString MingwMakefileGenerator::getLibTarget()
return QString("lib" + project->first("TARGET") + project->first("TARGET_VERSION_EXT") + ".a");
}
+QString MingwMakefileGenerator::getManifestFileForRcFile() const
+{
+ return project->first("QMAKE_MANIFEST").toQString();
+}
+
bool MingwMakefileGenerator::findLibraries()
{
QList<QMakeLocalFileName> dirs;
diff --git a/qmake/generators/win32/mingw_make.h b/qmake/generators/win32/mingw_make.h
index 2442ea852b..bd26f343dc 100644
--- a/qmake/generators/win32/mingw_make.h
+++ b/qmake/generators/win32/mingw_make.h
@@ -46,6 +46,7 @@ public:
protected:
QString escapeDependencyPath(const QString &path) const;
QString getLibTarget();
+ virtual QString getManifestFileForRcFile() const;
bool writeMakefile(QTextStream &);
void init();
private:
diff --git a/qmake/generators/win32/msbuild_objectmodel.cpp b/qmake/generators/win32/msbuild_objectmodel.cpp
index 1f51ff0342..4ddb76032e 100644
--- a/qmake/generators/win32/msbuild_objectmodel.cpp
+++ b/qmake/generators/win32/msbuild_objectmodel.cpp
@@ -1968,11 +1968,13 @@ bool VCXProjectWriter::outputFileConfig(OutputFilterData *d, XmlOutput &xml, Xml
}
if ( !filter.CompilerTool.PrecompiledHeaderThrough.isEmpty() ) {
-
xml << tag("PrecompiledHeaderFile")
<< attrTag("Condition", condition)
- << valueTag(filter.CompilerTool.PrecompiledHeaderThrough)
- << tag("PrecompiledHeader")
+ << valueTag(filter.CompilerTool.PrecompiledHeaderThrough);
+ }
+
+ if (filter.CompilerTool.UsePrecompiledHeader != pchUnset) {
+ xml << tag("PrecompiledHeader")
<< attrTag("Condition", condition)
<< valueTag(toString(filter.CompilerTool.UsePrecompiledHeader));
}
diff --git a/qmake/generators/win32/msvc_objectmodel.cpp b/qmake/generators/win32/msvc_objectmodel.cpp
index 74a0a20ea2..596170b343 100644
--- a/qmake/generators/win32/msvc_objectmodel.cpp
+++ b/qmake/generators/win32/msvc_objectmodel.cpp
@@ -2237,7 +2237,8 @@ void VCFilter::modifyPCHstage(QString str)
useCompilerTool = true;
// Setup PCH options
CompilerTool.UsePrecompiledHeader = (isCFile ? pchNone : pchCreateUsingSpecific);
- CompilerTool.PrecompiledHeaderThrough = (isCPPFile ? Project->precompHFilename : QString("$(NOINHERIT)"));
+ if (isCFile)
+ CompilerTool.PrecompiledHeaderThrough = QLatin1String("$(NOINHERIT)");
CompilerTool.ForcedIncludeFiles = QStringList("$(NOINHERIT)");
}
diff --git a/qmake/generators/win32/winmakefile.cpp b/qmake/generators/win32/winmakefile.cpp
index 81bc16a3c6..b6bcdbf366 100644
--- a/qmake/generators/win32/winmakefile.cpp
+++ b/qmake/generators/win32/winmakefile.cpp
@@ -368,7 +368,8 @@ void Win32MakefileGenerator::processRcFileVar()
if (Option::qmake_mode == Option::QMAKE_GENERATE_NOTHING)
return;
- if (((!project->values("VERSION").isEmpty() || !project->values("RC_ICONS").isEmpty())
+ const QString manifestFile = getManifestFileForRcFile();
+ if (((!project->values("VERSION").isEmpty() || !project->values("RC_ICONS").isEmpty() || !manifestFile.isEmpty())
&& project->values("RC_FILE").isEmpty()
&& project->values("RES_FILE").isEmpty()
&& !project->isActiveConfig("no_generated_target_info")
@@ -412,7 +413,7 @@ void Win32MakefileGenerator::processRcFileVar()
ts << "# if defined(UNDER_CE)\n";
ts << "# include <winbase.h>\n";
ts << "# else\n";
- ts << "# include <winver.h>\n";
+ ts << "# include <windows.h>\n";
ts << "# endif\n";
ts << endl;
if (!rcIcons.isEmpty()) {
@@ -420,6 +421,14 @@ void Win32MakefileGenerator::processRcFileVar()
ts << QString("IDI_ICON%1\tICON\tDISCARDABLE\t%2").arg(i + 1).arg(cQuoted(rcIcons[i])) << endl;
ts << endl;
}
+ if (!manifestFile.isEmpty()) {
+ QString manifestResourceId;
+ if (project->first("TEMPLATE") == "lib")
+ manifestResourceId = QStringLiteral("ISOLATIONAWARE_MANIFEST_RESOURCE_ID");
+ else
+ manifestResourceId = QStringLiteral("CREATEPROCESS_MANIFEST_RESOURCE_ID");
+ ts << manifestResourceId << " RT_MANIFEST \"" << manifestFile << "\"\n";
+ }
ts << "VS_VERSION_INFO VERSIONINFO\n";
ts << "\tFILEVERSION " << QString(versionString).replace(".", ",") << endl;
ts << "\tPRODUCTVERSION " << QString(versionString).replace(".", ",") << endl;
@@ -894,4 +903,9 @@ QString Win32MakefileGenerator::cQuoted(const QString &str)
return ret;
}
+QString Win32MakefileGenerator::getManifestFileForRcFile() const
+{
+ return QString();
+}
+
QT_END_NAMESPACE
diff --git a/qmake/generators/win32/winmakefile.h b/qmake/generators/win32/winmakefile.h
index 3016bad5b4..468f2f3ee6 100644
--- a/qmake/generators/win32/winmakefile.h
+++ b/qmake/generators/win32/winmakefile.h
@@ -66,6 +66,7 @@ protected:
void processRcFileVar();
virtual QString getLibTarget();
static QString cQuoted(const QString &str);
+ virtual QString getManifestFileForRcFile() const;
};
inline Win32MakefileGenerator::~Win32MakefileGenerator()
diff --git a/qmake/qmake.pri b/qmake/qmake.pri
index 4de41d63e6..57dcbb0586 100644
--- a/qmake/qmake.pri
+++ b/qmake/qmake.pri
@@ -138,8 +138,8 @@ bootstrap { #Qt code
SOURCES += qfilesystemengine_unix.cpp qfilesystemiterator_unix.cpp qfsfileengine_unix.cpp
mac {
SOURCES += qcore_mac.cpp qsettings_mac.cpp
- OBJECTIVE_SOURCES += qlocale_mac.mm
- LIBS += -framework ApplicationServices
+ OBJECTIVE_SOURCES += qcore_mac_objc.mm qlocale_mac.mm
+ LIBS += -framework ApplicationServices -framework CoreServices -framework Foundation
} else {
SOURCES += qlocale_unix.cpp
}