summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYuhang Zhao <2546789017@qq.com>2020-05-04 16:35:22 +0800
committerYuhang Zhao <2546789017@qq.com>2020-05-11 21:23:18 +0800
commitef8640596c77dfd25ac0fe790bf265e581da29b1 (patch)
tree28296f104d050624c3e1c7a69ca220a330095c88
parenta1ccedeb440216dce87fad01746935a89fd8715e (diff)
qmake: Fix handling of manifest file of msvc
Setting the QMAKE_MANIFEST variable doesn't have any effect for MSVC. This commit fixes that. If the developer is setting this variable, he/she will definitely use CONFIG-=embed_manifest_exe or CONFIG-=embed_manifest_dll at the same time, so I think there is no need to check this. Change-Id: Ie32b7e0cded71efcf14bf4c0eecab5ab1944fa2c Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
-rw-r--r--qmake/doc/src/qmake-manual.qdoc12
-rw-r--r--qmake/generators/win32/mingw_make.cpp5
-rw-r--r--qmake/generators/win32/mingw_make.h1
-rw-r--r--qmake/generators/win32/winmakefile.cpp7
-rw-r--r--qmake/generators/win32/winmakefile.h1
5 files changed, 11 insertions, 15 deletions
diff --git a/qmake/doc/src/qmake-manual.qdoc b/qmake/doc/src/qmake-manual.qdoc
index bf496e38f5..bcda88ad8f 100644
--- a/qmake/doc/src/qmake-manual.qdoc
+++ b/qmake/doc/src/qmake-manual.qdoc
@@ -796,8 +796,8 @@
variables \l{QMAKE_TARGET_COMPANY}, \l{QMAKE_TARGET_DESCRIPTION},
\l{QMAKE_TARGET_COPYRIGHT}, \l{QMAKE_TARGET_PRODUCT},
\l{QMAKE_TARGET_ORIGINAL_FILENAME}, \l{QMAKE_TARGET_INTERNALNAME},
- \l{QMAKE_TARGET_COMMENTS}, \l{QMAKE_TARGET_TRADEMARKS}, \l{RC_CODEPAGE},
- \l{RC_ICONS}, \l{RC_LANG} and \l{VERSION}.
+ \l{QMAKE_TARGET_COMMENTS}, \l{QMAKE_TARGET_TRADEMARKS}, \l{QMAKE_MANIFEST},
+ \l{RC_CODEPAGE}, \l{RC_ICONS}, \l{RC_LANG} and \l{VERSION}.
If these elements are not sufficient, qmake has the two system variables
\l{RC_FILE} and \l{RES_FILE} that point directly to an externally created
@@ -2784,6 +2784,14 @@
\l{RC_ICONS} variable is set and the \l{RC_FILE} and \l{RES_FILE} variables
are not set.
+ \target QMAKE_MANIFEST
+ \section1 QMAKE_MANIFEST
+
+ Windows only. Specifies the manifest file for the project target.
+ This is only utilized if the \l{RC_FILE} and \l{RES_FILE} variables are not set.
+ Don't forget to remove embed_manifest_exe and embed_manifest_dll from
+ the CONFIG variable, otherwise it will conflict with the compiler generated one.
+
\section1 QMAKE_TVOS_DEPLOYMENT_TARGET
\note This variable is used on the tvOS platform only.
diff --git a/qmake/generators/win32/mingw_make.cpp b/qmake/generators/win32/mingw_make.cpp
index 7a717a80a9..e79e804266 100644
--- a/qmake/generators/win32/mingw_make.cpp
+++ b/qmake/generators/win32/mingw_make.cpp
@@ -45,11 +45,6 @@ QString MingwMakefileGenerator::escapeDependencyPath(const QString &path) const
return MakefileGenerator::escapeDependencyPath(ret);
}
-QString MingwMakefileGenerator::getManifestFileForRcFile() const
-{
- return project->first("QMAKE_MANIFEST").toQString();
-}
-
ProString MingwMakefileGenerator::fixLibFlag(const ProString &lib)
{
if (lib.startsWith("-l")) // Fallback for unresolved -l libs.
diff --git a/qmake/generators/win32/mingw_make.h b/qmake/generators/win32/mingw_make.h
index 8cae28a78b..6ab1c95a94 100644
--- a/qmake/generators/win32/mingw_make.h
+++ b/qmake/generators/win32/mingw_make.h
@@ -41,7 +41,6 @@ protected:
ProString fixLibFlag(const ProString &lib) override;
bool processPrlFileBase(QString &origFile, const QStringRef &origName,
const QStringRef &fixedBase, int slashOff) override;
- QString getManifestFileForRcFile() const override;
bool writeMakefile(QTextStream &) override;
void init() override;
QString installRoot() const override;
diff --git a/qmake/generators/win32/winmakefile.cpp b/qmake/generators/win32/winmakefile.cpp
index 57f02c13d0..85cc1ffd8a 100644
--- a/qmake/generators/win32/winmakefile.cpp
+++ b/qmake/generators/win32/winmakefile.cpp
@@ -301,7 +301,7 @@ void Win32MakefileGenerator::processRcFileVar()
if (Option::qmake_mode == Option::QMAKE_GENERATE_NOTHING)
return;
- const QString manifestFile = getManifestFileForRcFile();
+ const QString manifestFile = project->first("QMAKE_MANIFEST").toQString();
if (((!project->values("VERSION").isEmpty() || !project->values("RC_ICONS").isEmpty() || !manifestFile.isEmpty())
&& project->values("RC_FILE").isEmpty()
&& project->values("RES_FILE").isEmpty()
@@ -878,11 +878,6 @@ QString Win32MakefileGenerator::cQuoted(const QString &str)
return ret;
}
-QString Win32MakefileGenerator::getManifestFileForRcFile() const
-{
- return QString();
-}
-
ProKey Win32MakefileGenerator::fullTargetVariable() const
{
return "DEST_TARGET";
diff --git a/qmake/generators/win32/winmakefile.h b/qmake/generators/win32/winmakefile.h
index 09984fe355..265e54204e 100644
--- a/qmake/generators/win32/winmakefile.h
+++ b/qmake/generators/win32/winmakefile.h
@@ -63,7 +63,6 @@ protected:
void fixTargetExt();
void processRcFileVar();
static QString cQuoted(const QString &str);
- virtual QString getManifestFileForRcFile() const;
public:
ProKey fullTargetVariable() const override;