diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2019-12-18 12:11:16 +0100 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2019-12-19 10:34:55 +0100 |
commit | d0394e74e7c34012c3f520a3c3e4a2008911aa6f (patch) | |
tree | c9ebc762ce18a333932884cd6cfc79b17ec7c756 /src/shared | |
parent | edba18247d7e3713ee8051469874ad323c090ff3 (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.cpp | 6 | ||||
-rw-r--r-- | src/shared/winutils/qmlutils.h | 2 | ||||
-rw-r--r-- | src/shared/winutils/utils.cpp | 7 | ||||
-rw-r--r-- | src/shared/winutils/utils.h | 37 |
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 { |