diff --git a/src/plugins/android/androidqtversion.cpp b/src/plugins/android/androidqtversion.cpp index 9a7e3ced830..2303ddeb0b3 100644 --- a/src/plugins/android/androidqtversion.cpp +++ b/src/plugins/android/androidqtversion.cpp @@ -143,6 +143,11 @@ QSet AndroidQtVersion::availableFeatures() const return features; } +QSet AndroidQtVersion::targetDeviceTypes() const +{ + return { Constants::ANDROID_DEVICE_TYPE }; +} + QString AndroidQtVersion::platformName() const { return QLatin1String(QtSupport::Constants::ANDROID_PLATFORM); diff --git a/src/plugins/android/androidqtversion.h b/src/plugins/android/androidqtversion.h index a5b1ab0acbf..458a9adcf9f 100644 --- a/src/plugins/android/androidqtversion.h +++ b/src/plugins/android/androidqtversion.h @@ -57,6 +57,7 @@ public: Utils::Environment qmakeRunEnvironment() const; QSet availableFeatures() const; + QSet targetDeviceTypes() const; QString platformName() const; QString platformDisplayName() const; diff --git a/src/plugins/ios/iosqtversion.cpp b/src/plugins/ios/iosqtversion.cpp index bf064630d99..f78d304879d 100644 --- a/src/plugins/ios/iosqtversion.cpp +++ b/src/plugins/ios/iosqtversion.cpp @@ -119,6 +119,11 @@ QSet IosQtVersion::availableFeatures() const return features; } +QSet IosQtVersion::targetDeviceTypes() const +{ + return { Constants::IOS_DEVICE_TYPE }; +} + QString IosQtVersion::platformName() const { return QLatin1String(QtSupport::Constants::IOS_PLATFORM); diff --git a/src/plugins/ios/iosqtversion.h b/src/plugins/ios/iosqtversion.h index a8d98e2bfb4..f1ccff5f749 100644 --- a/src/plugins/ios/iosqtversion.h +++ b/src/plugins/ios/iosqtversion.h @@ -56,6 +56,7 @@ public: void addToEnvironment(const ProjectExplorer::Kit *k, Utils::Environment &env) const override; QSet availableFeatures() const override; + QSet targetDeviceTypes() const override; QString platformName() const override; QString platformDisplayName() const override; diff --git a/src/plugins/qnx/qnxdeviceconfigurationfactory.cpp b/src/plugins/qnx/qnxdeviceconfigurationfactory.cpp index 51dac846d64..c8cdf3d39f2 100644 --- a/src/plugins/qnx/qnxdeviceconfigurationfactory.cpp +++ b/src/plugins/qnx/qnxdeviceconfigurationfactory.cpp @@ -54,9 +54,7 @@ QString QnxDeviceConfigurationFactory::displayNameForId(Core::Id type) const QList QnxDeviceConfigurationFactory::availableCreationIds() const { - QList result; - result << Core::Id(Constants::QNX_QNX_OS_TYPE); - return result; + return { Constants::QNX_QNX_OS_TYPE }; } bool QnxDeviceConfigurationFactory::canCreate() const diff --git a/src/plugins/qnx/qnxqtversion.cpp b/src/plugins/qnx/qnxqtversion.cpp index 733251945ba..1e7252803d4 100644 --- a/src/plugins/qnx/qnxqtversion.cpp +++ b/src/plugins/qnx/qnxqtversion.cpp @@ -85,6 +85,11 @@ QSet QnxQtVersion::availableFeatures() const return features; } +QSet QnxQtVersion::targetDeviceTypes() const +{ + return { Constants::QNX_QNX_OS_TYPE }; +} + QString QnxQtVersion::platformName() const { return QString::fromLatin1(Constants::QNX_QNX_PLATFORM_NAME); diff --git a/src/plugins/qnx/qnxqtversion.h b/src/plugins/qnx/qnxqtversion.h index d654d240f45..be2573bfbfe 100644 --- a/src/plugins/qnx/qnxqtversion.h +++ b/src/plugins/qnx/qnxqtversion.h @@ -57,6 +57,7 @@ public: QString description() const override; QSet availableFeatures() const override; + QSet targetDeviceTypes() const override; QString platformName() const override; QString platformDisplayName() const override; diff --git a/src/plugins/qtsupport/baseqtversion.cpp b/src/plugins/qtsupport/baseqtversion.cpp index 09522e3c576..1063711b843 100644 --- a/src/plugins/qtsupport/baseqtversion.cpp +++ b/src/plugins/qtsupport/baseqtversion.cpp @@ -484,6 +484,15 @@ QList BaseQtVersion::validateKit(const Kit *k) if (qtAbis.isEmpty()) // No need to test if Qt does not know anyway... return result; + const Id dt = DeviceTypeKitInformation::deviceTypeId(k); + const QSet tdt = targetDeviceTypes(); + if (!tdt.isEmpty() && !tdt.contains(dt)) { + result << Task(Task::Warning, + QCoreApplication::translate("BaseQtVersion", + "Device type is not supported by Qt version."), + FileName(), -1, ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM); + } + ToolChain *tc = ToolChainKitInformation::toolChain(k); if (tc) { Abi targetAbi = tc->targetAbi(); diff --git a/src/plugins/qtsupport/baseqtversion.h b/src/plugins/qtsupport/baseqtversion.h index e56d86b4ffa..245ae751113 100644 --- a/src/plugins/qtsupport/baseqtversion.h +++ b/src/plugins/qtsupport/baseqtversion.h @@ -38,6 +38,7 @@ #include +#include #include #include @@ -206,6 +207,7 @@ public: bool fromPath = false); virtual QSet availableFeatures() const; + virtual QSet targetDeviceTypes() const = 0; virtual QString platformName() const; virtual QString platformDisplayName() const; virtual bool supportsPlatform(const QString &platformName) const; diff --git a/src/plugins/qtsupport/desktopqtversion.cpp b/src/plugins/qtsupport/desktopqtversion.cpp index b71bb709b85..5764777efa4 100644 --- a/src/plugins/qtsupport/desktopqtversion.cpp +++ b/src/plugins/qtsupport/desktopqtversion.cpp @@ -31,8 +31,14 @@ #include "desktopqtversion.h" #include "qtsupportconstants.h" +#include +#include +#include #include +#include +#include + #include using namespace QtSupport; @@ -90,6 +96,14 @@ QSet DesktopQtVersion::availableFeatures() const return features; } +QSet DesktopQtVersion::targetDeviceTypes() const +{ + QSet result = { ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE }; + if (Utils::contains(qtAbis(), [](const ProjectExplorer::Abi a) { return a.os() == ProjectExplorer::Abi::LinuxOS; })) + result.insert(RemoteLinux::Constants::GenericLinuxOsType); + return result; +} + QString DesktopQtVersion::platformName() const { return QLatin1String(Constants::DESKTOP_PLATFORM); diff --git a/src/plugins/qtsupport/desktopqtversion.h b/src/plugins/qtsupport/desktopqtversion.h index ff1a5c59f41..5141a7931e1 100644 --- a/src/plugins/qtsupport/desktopqtversion.h +++ b/src/plugins/qtsupport/desktopqtversion.h @@ -52,6 +52,7 @@ public: QString description() const; QSet availableFeatures() const; + QSet targetDeviceTypes() const; QString platformName() const; QString platformDisplayName() const; }; diff --git a/src/plugins/qtsupport/qtkitinformation.cpp b/src/plugins/qtsupport/qtkitinformation.cpp index 94aa930d159..b43a336e121 100644 --- a/src/plugins/qtsupport/qtkitinformation.cpp +++ b/src/plugins/qtsupport/qtkitinformation.cpp @@ -35,6 +35,9 @@ #include "qtversionmanager.h" #include "qtparser.h" +#include +#include + #include #include #include @@ -51,8 +54,8 @@ QtKitInformation::QtKitInformation() setId(QtKitInformation::id()); setPriority(26000); - connect(ProjectExplorer::KitManager::instance(), SIGNAL(kitsLoaded()), - this, SLOT(kitsWereLoaded())); + connect(KitManager::instance(), &KitManager::kitsLoaded, + this, &QtKitInformation::kitsWereLoaded); } QVariant QtKitInformation::defaultValue(ProjectExplorer::Kit *k) const @@ -85,11 +88,11 @@ QVariant QtKitInformation::defaultValue(ProjectExplorer::Kit *k) const QList QtKitInformation::validate(const ProjectExplorer::Kit *k) const { - QList result; - QTC_ASSERT(QtVersionManager::isLoaded(), return result); + QTC_ASSERT(QtVersionManager::isLoaded(), return { }); BaseQtVersion *version = qtVersion(k); if (!version) - return result; + return { }; + return version->validateKit(k); } diff --git a/src/plugins/qtsupport/winceqtversion.cpp b/src/plugins/qtsupport/winceqtversion.cpp index 55fc81c839c..8fd0e0a7e66 100644 --- a/src/plugins/qtsupport/winceqtversion.cpp +++ b/src/plugins/qtsupport/winceqtversion.cpp @@ -31,18 +31,14 @@ #include "winceqtversion.h" #include "qtsupportconstants.h" +#include + #include #include using namespace QtSupport; using namespace QtSupport::Internal; -WinCeQtVersion::WinCeQtVersion() - : BaseQtVersion(), - m_archType(ProjectExplorer::Abi::ArmArchitecture) -{ -} - WinCeQtVersion::WinCeQtVersion(const Utils::FileName &path, const QString &archType, bool isAutodetected, const QString &autodetectionSource) : BaseQtVersion(path, isAutodetected, autodetectionSource), @@ -55,10 +51,6 @@ WinCeQtVersion::WinCeQtVersion(const Utils::FileName &path, const QString &archT setUnexpandedDisplayName(defaultUnexpandedDisplayName(path, false)); } -WinCeQtVersion::~WinCeQtVersion() -{ -} - WinCeQtVersion *WinCeQtVersion::clone() const { return new WinCeQtVersion(*this); @@ -113,3 +105,8 @@ QString WinCeQtVersion::platformDisplayName() const { return QLatin1String(Constants::WINDOWS_CE_PLATFORM_TR); } + +QSet WinCeQtVersion::targetDeviceTypes() const +{ + return QSet(); +} diff --git a/src/plugins/qtsupport/winceqtversion.h b/src/plugins/qtsupport/winceqtversion.h index 8a9a3ca07fb..df7e5710d82 100644 --- a/src/plugins/qtsupport/winceqtversion.h +++ b/src/plugins/qtsupport/winceqtversion.h @@ -39,10 +39,10 @@ namespace Internal { class WinCeQtVersion : public BaseQtVersion { public: - WinCeQtVersion(); + WinCeQtVersion() = default; WinCeQtVersion(const Utils::FileName &path, const QString &archType, bool isAutodetected = false, const QString &autodetectionSource = QString()); - ~WinCeQtVersion(); + ~WinCeQtVersion() = default; WinCeQtVersion *clone() const; QString type() const; @@ -55,9 +55,10 @@ public: QString platformName() const; QString platformDisplayName() const; + QSet targetDeviceTypes() const; private: - ProjectExplorer::Abi::Architecture m_archType; + ProjectExplorer::Abi::Architecture m_archType = ProjectExplorer::Abi::ArmArchitecture; }; } // Internal diff --git a/src/plugins/remotelinux/embeddedlinuxqtversion.cpp b/src/plugins/remotelinux/embeddedlinuxqtversion.cpp index beacbd8f123..510c0155398 100644 --- a/src/plugins/remotelinux/embeddedlinuxqtversion.cpp +++ b/src/plugins/remotelinux/embeddedlinuxqtversion.cpp @@ -32,6 +32,7 @@ #include "remotelinux_constants.h" +#include #include #include @@ -39,19 +40,12 @@ namespace RemoteLinux { namespace Internal { -EmbeddedLinuxQtVersion::EmbeddedLinuxQtVersion() - : BaseQtVersion() -{ } - EmbeddedLinuxQtVersion::EmbeddedLinuxQtVersion(const Utils::FileName &path, bool isAutodetected, const QString &autodetectionSource) : BaseQtVersion(path, isAutodetected, autodetectionSource) { setUnexpandedDisplayName(defaultUnexpandedDisplayName(path, false)); } -EmbeddedLinuxQtVersion::~EmbeddedLinuxQtVersion() -{ } - EmbeddedLinuxQtVersion *EmbeddedLinuxQtVersion::clone() const { return new EmbeddedLinuxQtVersion(*this); @@ -72,6 +66,11 @@ QString EmbeddedLinuxQtVersion::description() const return QCoreApplication::translate("QtVersion", "Embedded Linux", "Qt Version is used for embedded Linux development"); } +QSet EmbeddedLinuxQtVersion::targetDeviceTypes() const +{ + return { Constants::GenericLinuxOsType }; +} + QString EmbeddedLinuxQtVersion::platformName() const { return QLatin1String(QtSupport::Constants::EMBEDDED_LINUX_PLATFORM); diff --git a/src/plugins/remotelinux/embeddedlinuxqtversion.h b/src/plugins/remotelinux/embeddedlinuxqtversion.h index 89cac2ac4fd..c1975f6c159 100644 --- a/src/plugins/remotelinux/embeddedlinuxqtversion.h +++ b/src/plugins/remotelinux/embeddedlinuxqtversion.h @@ -39,9 +39,9 @@ namespace Internal { class EmbeddedLinuxQtVersion : public QtSupport::BaseQtVersion { public: - EmbeddedLinuxQtVersion(); + EmbeddedLinuxQtVersion() = default; EmbeddedLinuxQtVersion(const Utils::FileName &path, bool isAutodetected = false, const QString &autodetectionSource = QString()); - ~EmbeddedLinuxQtVersion(); + ~EmbeddedLinuxQtVersion() = default; EmbeddedLinuxQtVersion *clone() const; QString type() const; @@ -50,6 +50,7 @@ public: QString description() const; + QSet targetDeviceTypes() const; QString platformName() const; QString platformDisplayName() const; }; diff --git a/src/plugins/winrt/winrtphoneqtversion.cpp b/src/plugins/winrt/winrtphoneqtversion.cpp index 694d12df2d7..6754a50dfca 100644 --- a/src/plugins/winrt/winrtphoneqtversion.cpp +++ b/src/plugins/winrt/winrtphoneqtversion.cpp @@ -31,16 +31,15 @@ #include "winrtphoneqtversion.h" #include "winrtconstants.h" + +#include #include +#include + namespace WinRt { namespace Internal { -WinRtPhoneQtVersion::WinRtPhoneQtVersion() - : WinRtQtVersion() -{ -} - WinRtPhoneQtVersion::WinRtPhoneQtVersion(const Utils::FileName &path, bool isAutodetected, const QString &autodetectionSource) : WinRtQtVersion(path, isAutodetected, autodetectionSource) @@ -72,5 +71,10 @@ QString WinRtPhoneQtVersion::platformDisplayName() const return QLatin1String(QtSupport::Constants::WINDOWS_PHONE_PLATFORM_TR); } +QSet WinRtPhoneQtVersion::targetDeviceTypes() const +{ + return { Constants::WINRT_DEVICE_TYPE_PHONE, Constants::WINRT_DEVICE_TYPE_EMULATOR }; +} + } // Internal } // WinRt diff --git a/src/plugins/winrt/winrtphoneqtversion.h b/src/plugins/winrt/winrtphoneqtversion.h index cc0841e3cc2..0a58e6a7a3e 100644 --- a/src/plugins/winrt/winrtphoneqtversion.h +++ b/src/plugins/winrt/winrtphoneqtversion.h @@ -40,7 +40,7 @@ class WinRtPhoneQtVersion : public WinRtQtVersion { Q_DECLARE_TR_FUNCTIONS(WinRt::Internal::WinRtQtVersion) public: - WinRtPhoneQtVersion(); + WinRtPhoneQtVersion() = default; WinRtPhoneQtVersion(const Utils::FileName &path, bool isAutodetected, const QString &autodetectionSource); @@ -49,6 +49,7 @@ public: QString type() const; QString platformName() const; QString platformDisplayName() const; + QSet targetDeviceTypes() const; }; } // Internal diff --git a/src/plugins/winrt/winrtqtversion.cpp b/src/plugins/winrt/winrtqtversion.cpp index d899da3bff8..d3280c7f66e 100644 --- a/src/plugins/winrt/winrtqtversion.cpp +++ b/src/plugins/winrt/winrtqtversion.cpp @@ -38,10 +38,6 @@ namespace WinRt { namespace Internal { -WinRtQtVersion::WinRtQtVersion() -{ -} - WinRtQtVersion::WinRtQtVersion(const Utils::FileName &path, bool isAutodetected, const QString &autodetectionSource) : BaseQtVersion(path, isAutodetected, autodetectionSource) @@ -89,5 +85,10 @@ QList WinRtQtVersion::detectQtAbis() const return qtAbisFromLibrary(qtCorePaths(versionInfo(), qtVersionString())); } +QSet WinRtQtVersion::targetDeviceTypes() const +{ + return { Constants::WINRT_DEVICE_TYPE_LOCAL, Constants::WINRT_DEVICE_TYPE_EMULATOR }; +} + } // Internal } // WinRt diff --git a/src/plugins/winrt/winrtqtversion.h b/src/plugins/winrt/winrtqtversion.h index 6036d16e0fd..639e59635ac 100644 --- a/src/plugins/winrt/winrtqtversion.h +++ b/src/plugins/winrt/winrtqtversion.h @@ -40,7 +40,7 @@ class WinRtQtVersion : public QtSupport::BaseQtVersion { Q_DECLARE_TR_FUNCTIONS(WinRt::Internal::WinRtQtVersion) public: - WinRtQtVersion(); + WinRtQtVersion() = default; WinRtQtVersion(const Utils::FileName &path, bool isAutodetected, const QString &autodetectionSource); @@ -51,6 +51,8 @@ public: QString platformName() const; QString platformDisplayName() const; QList detectQtAbis() const; + + QSet targetDeviceTypes() const; }; } // Internal