From 6326ccfe3050584697229800db09bedb5dff5fe2 Mon Sep 17 00:00:00 2001 From: Rainer Keller Date: Fri, 14 Oct 2022 09:25:29 +0200 Subject: [PATCH] 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 --- src/plugins/mcusupport/mcusupportsdk.cpp | 9 +++++---- src/plugins/mcusupport/mcusupportsdk.h | 7 ++----- src/plugins/mcusupport/mcutargetdescription.h | 1 + src/plugins/mcusupport/test/unittest.cpp | 1 + 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 #include #include -#include #include #include @@ -658,7 +657,7 @@ static QList 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 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 &, 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,