diff options
author | Erik Verbruggen <erik@verbruggen.consulting> | 2021-02-09 17:27:02 +0100 |
---|---|---|
committer | Erik Verbruggen <erik.verbruggen@me.com> | 2021-02-16 10:33:52 +0000 |
commit | 7dc82b1af941040a8e1aea6cff5438b757c7c051 (patch) | |
tree | 8ebbc3f1e5d020856eea895dade3b902471e6106 | |
parent | 12a0934830f53b1cf3722be1f3274c2ba61dc0a9 (diff) | |
download | qt-creator-7dc82b1af941040a8e1aea6cff5438b757c7c051.tar.gz |
MCU: Do not add fall-back path for QUL kits
Fixes: UL-3609
Change-Id: I9912c7476f3b45346835d60be61fed7399046162
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
-rw-r--r-- | src/plugins/mcusupport/mcusupportoptions.cpp | 29 | ||||
-rw-r--r-- | src/plugins/mcusupport/mcusupportoptions.h | 1 | ||||
-rw-r--r-- | src/plugins/mcusupport/mcusupportplugin.cpp | 1 | ||||
-rw-r--r-- | src/plugins/qmljstools/qmljsmodelmanager.cpp | 2 | ||||
-rw-r--r-- | src/plugins/qtsupport/qtkitinformation.cpp | 5 | ||||
-rw-r--r-- | src/plugins/qtsupport/qtkitinformation.h | 6 | ||||
-rw-r--r-- | src/plugins/qtsupport/qtsupportconstants.h | 3 |
7 files changed, 44 insertions, 3 deletions
diff --git a/src/plugins/mcusupport/mcusupportoptions.cpp b/src/plugins/mcusupport/mcusupportoptions.cpp index 3d86cd1798..56bcf57165 100644 --- a/src/plugins/mcusupport/mcusupportoptions.cpp +++ b/src/plugins/mcusupport/mcusupportoptions.cpp @@ -600,7 +600,7 @@ void McuSupportOptions::setQulDir(const FilePath &dir) qtForMCUsSdkPackage->updateStatus(); if (qtForMCUsSdkPackage->status() == McuPackage::Status::ValidPackage) Sdk::targetsAndPackages(dir, &packages, &mcuTargets); - for (auto package : packages) + for (auto package : qAsConst(packages)) connect(package, &McuPackage::changed, this, &McuSupportOptions::changed); emit changed(); @@ -629,7 +629,8 @@ static void setKitProperties(const QString &kitName, Kit *k, const McuTarget *mc k->makeSticky(); if (mcuTarget->toolChainPackage()->isDesktopToolchain()) k->setDeviceTypeForIcon(DEVICE_TYPE); - QSet<Id> irrelevant = { SysRootKitAspect::id() }; + k->setValue(QtSupport::SuppliesQtQuickImportPath::id(), true); + QSet<Id> irrelevant = { SysRootKitAspect::id(), QtSupport::SuppliesQtQuickImportPath::id() }; if (!kitNeedsQtVersion()) irrelevant.insert(QtSupport::QtKitAspect::id()); k->setIrrelevantAspects(irrelevant); @@ -912,5 +913,29 @@ void McuSupportOptions::createAutomaticKits() delete qtForMCUsPackage; } +/** + * @brief Fix/update existing kits if needed + */ +void McuSupportOptions::fixExistingKits() +{ + for (Kit *kit : KitManager::kits()) { + if (!kit->hasValue(Constants::KIT_MCUTARGET_KITVERSION_KEY) ) + continue; + + // Check if the MCU kits are flagged as supplying a QtQuick import path, in order + // to tell the QMLJS code-model that it won't need to add a fall-back import + // path. + const auto bringsQtQuickImportPath = QtSupport::SuppliesQtQuickImportPath::id(); + auto irrelevantAspects = kit->irrelevantAspects(); + if (!irrelevantAspects.contains(bringsQtQuickImportPath)) { + irrelevantAspects.insert(bringsQtQuickImportPath); + kit->setIrrelevantAspects(irrelevantAspects); + } + if (!kit->hasValue(bringsQtQuickImportPath)) { + kit->setValue(bringsQtQuickImportPath, true); + } + } +} + } // Internal } // McuSupport diff --git a/src/plugins/mcusupport/mcusupportoptions.h b/src/plugins/mcusupport/mcusupportoptions.h index 2ab9401424..57772bafb2 100644 --- a/src/plugins/mcusupport/mcusupportoptions.h +++ b/src/plugins/mcusupport/mcusupportoptions.h @@ -208,6 +208,7 @@ public: static void removeOutdatedKits(); static ProjectExplorer::Kit *newKit(const McuTarget *mcuTarget, const McuPackage *qtForMCUsSdk); static void createAutomaticKits(); + static void fixExistingKits(); void populatePackagesAndTargets(); static void registerQchFiles(); static void registerExamples(); diff --git a/src/plugins/mcusupport/mcusupportplugin.cpp b/src/plugins/mcusupport/mcusupportplugin.cpp index 9ecd84e75b..dec7c66c71 100644 --- a/src/plugins/mcusupport/mcusupportplugin.cpp +++ b/src/plugins/mcusupport/mcusupportplugin.cpp @@ -96,6 +96,7 @@ void McuSupportPlugin::extensionsInitialized() connect(KitManager::instance(), &KitManager::kitsLoaded, [](){ McuSupportOptions::removeOutdatedKits(); McuSupportOptions::createAutomaticKits(); + McuSupportOptions::fixExistingKits(); McuSupportPlugin::askUserAboutMcuSupportKitsSetup(); }); } diff --git a/src/plugins/qmljstools/qmljsmodelmanager.cpp b/src/plugins/qmljstools/qmljsmodelmanager.cpp index dfb7adcb8a..56c974c07c 100644 --- a/src/plugins/qmljstools/qmljsmodelmanager.cpp +++ b/src/plugins/qmljstools/qmljsmodelmanager.cpp @@ -155,7 +155,7 @@ ModelManagerInterface::ProjectInfo ModelManager::defaultProjectInfoForProject( projectInfo.tryQmlDump = project && qtVersion->type() == QLatin1String(QtSupport::Constants::DESKTOPQT); projectInfo.qtQmlPath = qtVersion->qmlPath().toFileInfo().canonicalFilePath(); projectInfo.qtVersionString = qtVersion->qtVersionString(); - } else { + } else if (!activeKit->value(QtSupport::SuppliesQtQuickImportPath::id(), false).toBool()) { projectInfo.qtQmlPath = QFileInfo(QLibraryInfo::location(QLibraryInfo::Qml2ImportsPath)).canonicalFilePath(); projectInfo.qtVersionString = QLatin1String(qVersion()); } diff --git a/src/plugins/qtsupport/qtkitinformation.cpp b/src/plugins/qtsupport/qtkitinformation.cpp index cc8c42f83f..a1411598f2 100644 --- a/src/plugins/qtsupport/qtkitinformation.cpp +++ b/src/plugins/qtsupport/qtkitinformation.cpp @@ -464,4 +464,9 @@ int QtKitAspect::weight(const Kit *k) const return qtAbi.isCompatibleWith(tcAbi); }) ? 1 : 0; } +Id SuppliesQtQuickImportPath::id() +{ + return QtSupport::Constants::FLAGS_SUPPLIES_QTQUICK_IMPORT_PATH; +} + } // namespace QtSupport diff --git a/src/plugins/qtsupport/qtkitinformation.h b/src/plugins/qtsupport/qtkitinformation.h index 22efc6caff..23427df87b 100644 --- a/src/plugins/qtsupport/qtkitinformation.h +++ b/src/plugins/qtsupport/qtkitinformation.h @@ -83,4 +83,10 @@ private: void kitsWereLoaded(); }; +class QTSUPPORT_EXPORT SuppliesQtQuickImportPath +{ +public: + static Utils::Id id(); +}; + } // namespace QtSupport diff --git a/src/plugins/qtsupport/qtsupportconstants.h b/src/plugins/qtsupport/qtsupportconstants.h index f8a453d13d..ea921295d6 100644 --- a/src/plugins/qtsupport/qtsupportconstants.h +++ b/src/plugins/qtsupport/qtsupportconstants.h @@ -55,5 +55,8 @@ const char FEATURE_QT_CONSOLE[] = "QtSupport.Wizards.FeatureQtConsole"; const char FEATURE_MOBILE[] = "QtSupport.Wizards.FeatureMobile"; const char FEATURE_DESKTOP[] = "QtSupport.Wizards.FeatureDesktop"; +// Kit flags +const char FLAGS_SUPPLIES_QTQUICK_IMPORT_PATH[] = "QtSupport.SuppliesQtQuickImportPath"; + } // namepsace Constants } // namepsace QtSupport |