summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErik Verbruggen <erik@verbruggen.consulting>2021-02-09 17:27:02 +0100
committerErik Verbruggen <erik.verbruggen@me.com>2021-02-16 10:33:52 +0000
commit7dc82b1af941040a8e1aea6cff5438b757c7c051 (patch)
tree8ebbc3f1e5d020856eea895dade3b902471e6106
parent12a0934830f53b1cf3722be1f3274c2ba61dc0a9 (diff)
downloadqt-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.cpp29
-rw-r--r--src/plugins/mcusupport/mcusupportoptions.h1
-rw-r--r--src/plugins/mcusupport/mcusupportplugin.cpp1
-rw-r--r--src/plugins/qmljstools/qmljsmodelmanager.cpp2
-rw-r--r--src/plugins/qtsupport/qtkitinformation.cpp5
-rw-r--r--src/plugins/qtsupport/qtkitinformation.h6
-rw-r--r--src/plugins/qtsupport/qtsupportconstants.h3
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