aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRainer Keller <rainer.keller@qt.io>2022-10-14 09:25:29 +0200
committerRainer Keller <Rainer.Keller@qt.io>2022-10-24 06:27:57 +0000
commit6326ccfe3050584697229800db09bedb5dff5fe2 (patch)
tree71e79f6b49bcc73eaa3b28ef515290ceffb5c161
parentd42214e556dda650846561ca216ba663befb3ba0 (diff)
McuSupport: Store the source location of the JSON file
This allows to mention the file name the configuration was created from in error messages. Change-Id: Id8e3d4a754cf5c1f0a12c6b21af1158713c68690 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
-rw-r--r--src/plugins/mcusupport/mcusupportsdk.cpp9
-rw-r--r--src/plugins/mcusupport/mcusupportsdk.h7
-rw-r--r--src/plugins/mcusupport/mcutargetdescription.h1
-rw-r--r--src/plugins/mcusupport/test/unittest.cpp1
4 files changed, 9 insertions, 9 deletions
diff --git a/src/plugins/mcusupport/mcusupportsdk.cpp b/src/plugins/mcusupport/mcusupportsdk.cpp
index 60e1e69f151..cd12a616138 100644
--- a/src/plugins/mcusupport/mcusupportsdk.cpp
+++ b/src/plugins/mcusupport/mcusupportsdk.cpp
@@ -22,7 +22,6 @@
#include <projectexplorer/toolchainmanager.h>
#include <utils/algorithm.h>
#include <utils/environment.h>
-#include <utils/fileutils.h>
#include <utils/hostosinfo.h>
#include <QDir>
@@ -658,7 +657,7 @@ static QList<PackageDescription> parsePackages(const QJsonArray &cmakeEntries)
return result;
}
-McuTargetDescription parseDescriptionJson(const QByteArray &data)
+McuTargetDescription parseDescriptionJson(const QByteArray &data, const Utils::FilePath &sourceFile)
{
const QJsonDocument document = QJsonDocument::fromJson(data);
const QJsonObject target = document.object();
@@ -692,7 +691,8 @@ McuTargetDescription parseDescriptionJson(const QByteArray &data)
});
const QString platformName = platform.value("platformName").toString();
- return {qulVersion,
+ return {sourceFile,
+ qulVersion,
compatVersion,
{platform.value("id").toString(),
platformName,
@@ -754,7 +754,8 @@ McuSdkRepository targetsAndPackages(const McuPackagePtr &qtForMCUsPackage,
if (!filePath.isReadableFile())
continue;
const McuTargetDescription desc = parseDescriptionJson(
- filePath.fileContents().value_or(QByteArray()));
+ filePath.fileContents().value_or(QByteArray()),
+ filePath);
bool ok = false;
const int compatVersion = desc.compatVersion.toInt(&ok);
if (!desc.compatVersion.isEmpty() && ok && compatVersion > MAX_COMPATIBILITY_VERSION) {
diff --git a/src/plugins/mcusupport/mcusupportsdk.h b/src/plugins/mcusupport/mcusupportsdk.h
index fabbee01c0a..c0f572140bb 100644
--- a/src/plugins/mcusupport/mcusupportsdk.h
+++ b/src/plugins/mcusupport/mcusupportsdk.h
@@ -5,10 +5,7 @@
#include "mcusupport_global.h"
#include "settingshandler.h"
-
-namespace Utils {
-class FilePath;
-} // namespace Utils
+#include <utils/fileutils.h>
namespace McuSupport::Internal {
@@ -28,7 +25,7 @@ bool checkDeprecatedSdkError(const Utils::FilePath &qulDir, QString &message);
McuSdkRepository targetsAndPackages(const McuPackagePtr &qtForMCUsPackage,
const SettingsHandler::Ptr &);
-McuTargetDescription parseDescriptionJson(const QByteArray &);
+McuTargetDescription parseDescriptionJson(const QByteArray &, const Utils::FilePath &sourceFile = Utils::FilePath());
McuSdkRepository targetsFromDescriptions(const QList<McuTargetDescription> &,
const SettingsHandler::Ptr &,
const McuPackagePtr &qtForMCUsPackage,
diff --git a/src/plugins/mcusupport/mcutargetdescription.h b/src/plugins/mcusupport/mcutargetdescription.h
index 7a905accafc..8dd510af81c 100644
--- a/src/plugins/mcusupport/mcutargetdescription.h
+++ b/src/plugins/mcusupport/mcutargetdescription.h
@@ -39,6 +39,7 @@ struct McuTargetDescription
{
enum class TargetType { MCU, Desktop };
+ Utils::FilePath sourceFile;
QString qulVersion;
QString compatVersion;
struct Platform
diff --git a/src/plugins/mcusupport/test/unittest.cpp b/src/plugins/mcusupport/test/unittest.cpp
index aa67124d68b..d503489aae9 100644
--- a/src/plugins/mcusupport/test/unittest.cpp
+++ b/src/plugins/mcusupport/test/unittest.cpp
@@ -352,6 +352,7 @@ McuSupportTest::McuSupportTest()
, compilerDescription{armGccLabel, armGccEnvVar, TOOLCHAIN_DIR_CMAKE_VARIABLE, armGccLabel, armGccDirectorySetting, {}, {}, {}, {}, false}
, toochainFileDescription{armGccLabel, armGccEnvVar, TOOLCHAIN_FILE_CMAKE_VARIABLE, armGccLabel, armGccDirectorySetting, {}, {}, {}, {}, false}
, targetDescription {
+ "autotest-sourceFile",
"2.0.1",
"2",
platformDescription,