summaryrefslogtreecommitdiffstats
path: root/src/shared
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2019-12-18 12:11:16 +0100
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2019-12-19 10:34:55 +0100
commitd0394e74e7c34012c3f520a3c3e4a2008911aa6f (patch)
treec9ebc762ce18a333932884cd6cfc79b17ec7c756 /src/shared
parentedba18247d7e3713ee8051469874ad323c090ff3 (diff)
windeployqt: Refactor platform enumeration
- Make it a QFlags, providing operators - Remove WinCE - Add a Msvc compiler flag and make the tests for build directory and d-suffix depending on it. - Add clang-Msvc/clang-MinGW - Rename WindowsDesktop to WindowsDesktopMsvc, WinRtIntel to WinRtIntelMsvc and WinRtArm to WinRtArmMsvc - Use QFlags::testFlag() Task-number: QTBUG-80806 Task-number: QTBUG-80763 Task-number: QTBUG-78445 Change-Id: I0dd74a7b03e9e6bee55d4234c12eec17d52ce0e2 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
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.cpp7
-rw-r--r--src/shared/winutils/utils.h37
4 files changed, 31 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 f3bea29ab..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
@@ -932,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");
@@ -955,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 {