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},
\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.

View File

@ -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.

View File

@ -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;

View File

@ -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";

View File

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