summaryrefslogtreecommitdiffstats
path: root/src/shared
diff options
context:
space:
mode:
authorQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2019-12-28 03:05:13 +0100
committerQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2019-12-28 03:05:13 +0100
commit51d2ff5dd89bc7747298c93bd00bee908c6fba0e (patch)
treeb13f8b182142184c9bbcbbe899884de52b62a1bf /src/shared
parent451b545b7f9b72ea3a63ee2f76b84ebdbf6ccd6b (diff)
parent4dcc7a3d10a223ddd111eaaac6665609add7c46f (diff)
Merge remote-tracking branch 'origin/5.14' into 5.15
Diffstat (limited to 'src/shared')
-rw-r--r--src/shared/winutils/qmlutils.cpp6
-rw-r--r--src/shared/winutils/qmlutils.h2
-rw-r--r--src/shared/winutils/utils.cpp10
-rw-r--r--src/shared/winutils/utils.h37
4 files changed, 34 insertions, 21 deletions
diff --git a/src/shared/winutils/qmlutils.cpp b/src/shared/winutils/qmlutils.cpp
index 6e8d5192b..54e470105 100644
--- a/src/shared/winutils/qmlutils.cpp
+++ b/src/shared/winutils/qmlutils.cpp
@@ -73,12 +73,12 @@ static QString qmlDirectoryRecursion(Platform platform, const QString &path)
}
// Find a directory containing QML files in the project
-QString findQmlDirectory(int platform, const QString &startDirectoryName)
+QString findQmlDirectory(Platform platform, const QString &startDirectoryName)
{
QDir startDirectory(startDirectoryName);
- if (isBuildDirectory(Platform(platform), startDirectory.dirName()))
+ if (isBuildDirectory(platform, startDirectory.dirName()))
startDirectory.cdUp();
- return qmlDirectoryRecursion(Platform(platform), startDirectory.path());
+ return qmlDirectoryRecursion(platform, startDirectory.path());
}
static void findFileRecursion(const QDir &directory, Platform platform,
diff --git a/src/shared/winutils/qmlutils.h b/src/shared/winutils/qmlutils.h
index 87e6ca132..572be7cab 100644
--- a/src/shared/winutils/qmlutils.h
+++ b/src/shared/winutils/qmlutils.h
@@ -35,7 +35,7 @@
QT_BEGIN_NAMESPACE
-QString findQmlDirectory(int platform, const QString &startDirectoryName);
+QString findQmlDirectory(Platform platform, const QString &startDirectoryName);
struct QmlImportScanResult {
struct Module {
diff --git a/src/shared/winutils/utils.cpp b/src/shared/winutils/utils.cpp
index f32b9b76b..b62f69a1e 100644
--- a/src/shared/winutils/utils.cpp
+++ b/src/shared/winutils/utils.cpp
@@ -59,7 +59,8 @@ int optVerboseLevel = 1;
bool isBuildDirectory(Platform platform, const QString &dirName)
{
- return (platform & WindowsBased) && (dirName == QLatin1String("debug") || dirName == QLatin1String("release"));
+ return (platform.testFlag(Msvc) || platform.testFlag(ClangMsvc))
+ && (dirName == QLatin1String("debug") || dirName == QLatin1String("release"));
}
// Create a symbolic link by changing to the source directory to make sure the
@@ -800,6 +801,9 @@ static inline MsvcDebugRuntimeResult checkMsvcDebugRuntime(const QStringList &de
pos = -1 == lastDotPos ? 0 : lastDotPos - 1;
}
+ if (lib.contains(QLatin1String("_app"), Qt::CaseInsensitive))
+ pos -= 4;
+
if (pos) {
return lib.at(pos).toLower() == QLatin1Char('d')
? MsvcDebugRuntime : MsvcReleaseRuntime;
@@ -929,7 +933,7 @@ QString findD3dCompiler(Platform platform, const QString &qtBinDir, unsigned wor
const QString kitDir = QString::fromLocal8Bit(qgetenv("WindowsSdkDir"));
if (!kitDir.isEmpty()) {
QString redistDirPath = QDir::cleanPath(kitDir) + QStringLiteral("/Redist/D3D/");
- if (platform & ArmBased) {
+ if (platform.testFlag(ArmBased)) {
redistDirPath += QStringLiteral("arm");
} else {
redistDirPath += wordSize == 32 ? QStringLiteral("x86") : QStringLiteral("x64");
@@ -952,7 +956,7 @@ QString findD3dCompiler(Platform platform, const QString &qtBinDir, unsigned wor
return fi.absoluteFilePath();
}
// Find the latest D3D compiler DLL in path (Windows 8.1 has d3dcompiler_47).
- if (platform & IntelBased) {
+ if (platform.testFlag(IntelBased)) {
QString errorMessage;
unsigned detectedWordSize;
for (const QString &candidate : qAsConst(candidateVersions)) {
diff --git a/src/shared/winutils/utils.h b/src/shared/winutils/utils.h
index 7915f8e4e..b15ca01cf 100644
--- a/src/shared/winutils/utils.h
+++ b/src/shared/winutils/utils.h
@@ -43,27 +43,36 @@
QT_BEGIN_NAMESPACE
enum PlatformFlag {
- WindowsBased = 0x1000,
- UnixBased = 0x2000,
- IntelBased = 0x4000,
- ArmBased = 0x8000,
- MinGW = 0x10000
-};
-
-enum Platform {
- WindowsDesktop = WindowsBased + IntelBased,
+ // OS
+ WindowsBased = 0x00001,
+ UnixBased = 0x00002,
+ WinRt = 0x00004,
+ // CPU
+ IntelBased = 0x00010,
+ ArmBased = 0x00020,
+ // Compiler
+ Msvc = 0x00100,
+ MinGW = 0x00200,
+ ClangMsvc = 0x00400,
+ ClangMinGW = 0x00800,
+ // Platforms
+ WindowsDesktopMsvc = WindowsBased + IntelBased + Msvc,
WindowsDesktopMinGW = WindowsBased + IntelBased + MinGW,
- WinRtIntel = WindowsBased + IntelBased + 1,
- WinRtArm = WindowsBased + ArmBased + 2,
- WinCEIntel = WindowsBased + IntelBased + 5,
- WinCEArm = WindowsBased + ArmBased + 6,
+ WindowsDesktopClangMsvc = WindowsBased + IntelBased + ClangMsvc,
+ WindowsDesktopClangMinGW = WindowsBased + IntelBased + ClangMinGW,
+ WinRtIntelMsvc = WindowsBased + WinRt + IntelBased + Msvc,
+ WinRtArmMsvc = WindowsBased + WinRt + ArmBased + Msvc,
Unix = UnixBased,
UnknownPlatform
};
+Q_DECLARE_FLAGS(Platform, PlatformFlag)
+
+Q_DECLARE_OPERATORS_FOR_FLAGS(Platform)
+
inline bool platformHasDebugSuffix(Platform p) // Uses 'd' debug suffix
{
- return (p & WindowsBased) != 0 && (p & MinGW) == 0;
+ return p.testFlag(Msvc) || p.testFlag(ClangMsvc);
}
enum ListOption {