From ef8640596c77dfd25ac0fe790bf265e581da29b1 Mon Sep 17 00:00:00 2001 From: Yuhang Zhao <2546789017@qq.com> Date: Mon, 4 May 2020 16:35:22 +0800 Subject: 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 --- qmake/doc/src/qmake-manual.qdoc | 12 ++++++++++-- qmake/generators/win32/mingw_make.cpp | 5 ----- qmake/generators/win32/mingw_make.h | 1 - qmake/generators/win32/winmakefile.cpp | 7 +------ qmake/generators/win32/winmakefile.h | 1 - 5 files changed, 11 insertions(+), 15 deletions(-) (limited to 'qmake') 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; -- cgit v1.2.3