summaryrefslogtreecommitdiffstats
path: root/qmake/generators/win32/msvc_vcproj.cpp
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@theqtcompany.com>2014-10-27 13:00:36 +0100
committerFrederik Gladhorn <frederik.gladhorn@theqtcompany.com>2014-10-27 13:00:36 +0100
commit2eb26c170920d28213b71e549d5dac4663febb14 (patch)
tree8df5223ac114d758c2112a8fc787992175556418 /qmake/generators/win32/msvc_vcproj.cpp
parent49ddae28e0dcd1c59dd5d742cffedd5290d1224a (diff)
parent81998b4e8e440076bd22a9164f0a93481c0e597a (diff)
Merge remote-tracking branch 'origin/5.4' into dev
Conflicts: src/gui/text/qfontdatabase.cpp Change-Id: I6ac1f55faa22b8e7b591386fb67f0333d0ea443d
Diffstat (limited to 'qmake/generators/win32/msvc_vcproj.cpp')
-rw-r--r--qmake/generators/win32/msvc_vcproj.cpp27
1 files changed, 21 insertions, 6 deletions
diff --git a/qmake/generators/win32/msvc_vcproj.cpp b/qmake/generators/win32/msvc_vcproj.cpp
index 24421c6c28..9385a50e02 100644
--- a/qmake/generators/win32/msvc_vcproj.cpp
+++ b/qmake/generators/win32/msvc_vcproj.cpp
@@ -405,6 +405,21 @@ QString VcprojGenerator::retrievePlatformToolSet() const
}
}
+bool VcprojGenerator::isStandardSuffix(const QString &suffix) const
+{
+ if (!project->values("QMAKE_APP_FLAG").isEmpty()) {
+ if (suffix.compare("exe", Qt::CaseInsensitive) == 0)
+ return true;
+ } else if (project->isActiveConfig("shared")) {
+ if (suffix.compare("dll", Qt::CaseInsensitive) == 0)
+ return true;
+ } else {
+ if (suffix.compare("lib", Qt::CaseInsensitive) == 0)
+ return true;
+ }
+ return false;
+}
+
ProStringList VcprojGenerator::collectDependencies(QMakeProject *proj, QHash<QString, QString> &projLookup,
QHash<QString, QString> &projGuids,
QHash<VcsolutionDepend *, QStringList> &extraSubdirs,
@@ -993,12 +1008,12 @@ void VcprojGenerator::initConfiguration()
if (conf.CompilerVersion >= NET2010) {
conf.PlatformToolSet = retrievePlatformToolSet();
- // The target name could have been changed.
- conf.PrimaryOutput = project->first("TARGET").toQString();
- if (!conf.PrimaryOutput.isEmpty() && project->first("TEMPLATE") == "vclib"
- && project->isActiveConfig("shared")) {
- conf.PrimaryOutput.append(project->first("TARGET_VERSION_EXT").toQString());
- }
+ const QFileInfo targetInfo = fileInfo(project->first("MSVCPROJ_TARGET").toQString());
+ conf.PrimaryOutput = targetInfo.completeBaseName();
+
+ const QString targetSuffix = targetInfo.suffix();
+ if (!isStandardSuffix(targetSuffix))
+ conf.PrimaryOutputExtension = '.' + targetSuffix;
}
if (conf.CompilerVersion >= NET2012) {