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>
This commit is contained in:
Yuhang Zhao 2020-05-04 16:35:22 +08:00
parent a1ccedeb44
commit ef8640596c
5 changed files with 11 additions and 15 deletions

View File

@ -796,8 +796,8 @@
variables \l{QMAKE_TARGET_COMPANY}, \l{QMAKE_TARGET_DESCRIPTION}, variables \l{QMAKE_TARGET_COMPANY}, \l{QMAKE_TARGET_DESCRIPTION},
\l{QMAKE_TARGET_COPYRIGHT}, \l{QMAKE_TARGET_PRODUCT}, \l{QMAKE_TARGET_COPYRIGHT}, \l{QMAKE_TARGET_PRODUCT},
\l{QMAKE_TARGET_ORIGINAL_FILENAME}, \l{QMAKE_TARGET_INTERNALNAME}, \l{QMAKE_TARGET_ORIGINAL_FILENAME}, \l{QMAKE_TARGET_INTERNALNAME},
\l{QMAKE_TARGET_COMMENTS}, \l{QMAKE_TARGET_TRADEMARKS}, \l{RC_CODEPAGE}, \l{QMAKE_TARGET_COMMENTS}, \l{QMAKE_TARGET_TRADEMARKS}, \l{QMAKE_MANIFEST},
\l{RC_ICONS}, \l{RC_LANG} and \l{VERSION}. \l{RC_CODEPAGE}, \l{RC_ICONS}, \l{RC_LANG} and \l{VERSION}.
If these elements are not sufficient, qmake has the two system variables 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 \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 \l{RC_ICONS} variable is set and the \l{RC_FILE} and \l{RES_FILE} variables
are not set. 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 \section1 QMAKE_TVOS_DEPLOYMENT_TARGET
\note This variable is used on the tvOS platform only. \note This variable is used on the tvOS platform only.

View File

@ -45,11 +45,6 @@ QString MingwMakefileGenerator::escapeDependencyPath(const QString &path) const
return MakefileGenerator::escapeDependencyPath(ret); return MakefileGenerator::escapeDependencyPath(ret);
} }
QString MingwMakefileGenerator::getManifestFileForRcFile() const
{
return project->first("QMAKE_MANIFEST").toQString();
}
ProString MingwMakefileGenerator::fixLibFlag(const ProString &lib) ProString MingwMakefileGenerator::fixLibFlag(const ProString &lib)
{ {
if (lib.startsWith("-l")) // Fallback for unresolved -l libs. if (lib.startsWith("-l")) // Fallback for unresolved -l libs.

View File

@ -41,7 +41,6 @@ protected:
ProString fixLibFlag(const ProString &lib) override; ProString fixLibFlag(const ProString &lib) override;
bool processPrlFileBase(QString &origFile, const QStringRef &origName, bool processPrlFileBase(QString &origFile, const QStringRef &origName,
const QStringRef &fixedBase, int slashOff) override; const QStringRef &fixedBase, int slashOff) override;
QString getManifestFileForRcFile() const override;
bool writeMakefile(QTextStream &) override; bool writeMakefile(QTextStream &) override;
void init() override; void init() override;
QString installRoot() const override; QString installRoot() const override;

View File

@ -301,7 +301,7 @@ void Win32MakefileGenerator::processRcFileVar()
if (Option::qmake_mode == Option::QMAKE_GENERATE_NOTHING) if (Option::qmake_mode == Option::QMAKE_GENERATE_NOTHING)
return; 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()) if (((!project->values("VERSION").isEmpty() || !project->values("RC_ICONS").isEmpty() || !manifestFile.isEmpty())
&& project->values("RC_FILE").isEmpty() && project->values("RC_FILE").isEmpty()
&& project->values("RES_FILE").isEmpty() && project->values("RES_FILE").isEmpty()
@ -878,11 +878,6 @@ QString Win32MakefileGenerator::cQuoted(const QString &str)
return ret; return ret;
} }
QString Win32MakefileGenerator::getManifestFileForRcFile() const
{
return QString();
}
ProKey Win32MakefileGenerator::fullTargetVariable() const ProKey Win32MakefileGenerator::fullTargetVariable() const
{ {
return "DEST_TARGET"; return "DEST_TARGET";

View File

@ -63,7 +63,6 @@ protected:
void fixTargetExt(); void fixTargetExt();
void processRcFileVar(); void processRcFileVar();
static QString cQuoted(const QString &str); static QString cQuoted(const QString &str);
virtual QString getManifestFileForRcFile() const;
public: public:
ProKey fullTargetVariable() const override; ProKey fullTargetVariable() const override;