diff --git a/src/plugins/mcusupport/mcusupportsdk.cpp b/src/plugins/mcusupport/mcusupportsdk.cpp index 83655ab34fb..a85ac4c8894 100644 --- a/src/plugins/mcusupport/mcusupportsdk.cpp +++ b/src/plugins/mcusupport/mcusupportsdk.cpp @@ -82,7 +82,7 @@ static McuPackageVersionDetector *generatePackageVersionDetector(const QString & R"(\b(\d+\.\d+\.\d+)\b)"); if (envVar.startsWith("RGL")) - return new McuPackageDirectoryVersionDetector("rgl_*_obj_*", R"(\d+\.\d+\.\w+)", false); + return new McuPackagePathVersionDetector(R"(\d+\.\d+\.\w+)"); return nullptr; } @@ -613,7 +613,6 @@ VersionDetection parseVersionDetection(const QJsonObject &packageEntry) versioning["executableArgs"].toString(), versioning["xmlElement"].toString(), versioning["xmlAttribute"].toString(), - versioning["isFile"].toBool(true), }; } diff --git a/src/plugins/mcusupport/mcusupportversiondetection.cpp b/src/plugins/mcusupport/mcusupportversiondetection.cpp index f99ca115361..4b084d927ab 100644 --- a/src/plugins/mcusupport/mcusupportversiondetection.cpp +++ b/src/plugins/mcusupport/mcusupportversiondetection.cpp @@ -80,18 +80,15 @@ QString McuPackageXmlVersionDetector::parseVersion(const FilePath &packagePath) return QString(); } -McuPackageDirectoryVersionDetector::McuPackageDirectoryVersionDetector(const QString &filePattern, - const QString &versionRegExp, - const bool isFile) +McuPackageDirectoryEntriesVersionDetector::McuPackageDirectoryEntriesVersionDetector( + const QString &filePattern, const QString &versionRegExp) : m_filePattern(filePattern) , m_versionRegExp(versionRegExp) - , m_isFile(isFile) {} -QString McuPackageDirectoryVersionDetector::parseVersion(const FilePath &packagePath) const +QString McuPackageDirectoryEntriesVersionDetector::parseVersion(const FilePath &packagePath) const { - const auto files = QDir(packagePath.toString(), m_filePattern) - .entryInfoList(m_isFile ? QDir::Filter::Files : QDir::Filter::Dirs); + const auto files = QDir(packagePath.toString(), m_filePattern).entryInfoList(); for (const auto &entry : files) { const QString matched = matchRegExp(entry.fileName(), m_versionRegExp); if (!matched.isEmpty()) diff --git a/src/plugins/mcusupport/mcusupportversiondetection.h b/src/plugins/mcusupport/mcusupportversiondetection.h index 68480263d83..cfd878b25b6 100644 --- a/src/plugins/mcusupport/mcusupportversiondetection.h +++ b/src/plugins/mcusupport/mcusupportversiondetection.h @@ -49,18 +49,16 @@ private: }; // Get version from the filename of a given file/dir in the package directory -class McuPackageDirectoryVersionDetector : public McuPackageVersionDetector +class McuPackageDirectoryEntriesVersionDetector : public McuPackageVersionDetector { public: - McuPackageDirectoryVersionDetector(const QString &filePattern, - const QString &versionRegExp, - const bool isFile); + McuPackageDirectoryEntriesVersionDetector(const QString &filePattern, + const QString &versionRegExp); QString parseVersion(const Utils::FilePath &packagePath) const final; private: const QString m_filePattern; const QString m_versionRegExp; - const bool m_isFile; }; // Get version from the path of the package itself diff --git a/src/plugins/mcusupport/mcutargetdescription.h b/src/plugins/mcusupport/mcutargetdescription.h index 3b811e5a034..3c8600b6604 100644 --- a/src/plugins/mcusupport/mcutargetdescription.h +++ b/src/plugins/mcusupport/mcutargetdescription.h @@ -18,7 +18,6 @@ struct VersionDetection QString executableArgs; QString xmlElement; QString xmlAttribute; - bool isFile; }; // struct VersionDetection struct PackageDescription diff --git a/src/plugins/mcusupport/mcutargetfactory.cpp b/src/plugins/mcusupport/mcutargetfactory.cpp index d17263ca351..ae79aeee359 100644 --- a/src/plugins/mcusupport/mcutargetfactory.cpp +++ b/src/plugins/mcusupport/mcutargetfactory.cpp @@ -37,9 +37,10 @@ McuPackageVersionDetector *createVersionDetection(const VersionDetection &versio QStringList{versionDetection.executableArgs}, versionDetection.regex}; else if (!versionDetection.filePattern.isEmpty() && !versionDetection.regex.isEmpty()) - return new McuPackageDirectoryVersionDetector(versionDetection.filePattern, - versionDetection.regex, - versionDetection.isFile); + return new McuPackageDirectoryEntriesVersionDetector(versionDetection.filePattern, + versionDetection.regex); + else if (!versionDetection.regex.isEmpty()) + return new McuPackagePathVersionDetector(versionDetection.regex); else { // In this case the JSON entry is either invalid or missing. // After refactoring, this should raise a JSON error to the user. diff --git a/src/plugins/mcusupport/test/ghs_rh850_d1m1a_baremetal_json.h b/src/plugins/mcusupport/test/ghs_rh850_d1m1a_baremetal_json.h index e6203cbf1c2..2b10ac19b1d 100644 --- a/src/plugins/mcusupport/test/ghs_rh850_d1m1a_baremetal_json.h +++ b/src/plugins/mcusupport/test/ghs_rh850_d1m1a_baremetal_json.h @@ -66,9 +66,7 @@ constexpr auto ghs_rh850_d1m1a_baremetal_json = R"( "type": "path", "defaultValue": "/Renesas_Electronics/D1x_RGL/rgl_ghs_D1Mx_obj_V.2.0.0a", "versionDetection": { - "filePattern": "rgl_*_obj_*", - "regex": "\\d+\\.\\d+\\.\\w+", - "isFile": false + "regex": "\\d+\\.\\d+\\.\\w+" }, "optional": false } diff --git a/src/plugins/mcusupport/test/unittest.cpp b/src/plugins/mcusupport/test/unittest.cpp index 8f97f1c17ae..30c0808e077 100644 --- a/src/plugins/mcusupport/test/unittest.cpp +++ b/src/plugins/mcusupport/test/unittest.cpp @@ -1357,15 +1357,13 @@ void McuSupportTest::test_passDirectoryVersionDetectorToRenesasBoardSdkPackage() { const McuTargetDescription description = parseDescriptionJson(ghs_rh850_d1m1a_baremetal_json); - QCOMPARE(description.boardSdk.versionDetection.filePattern, "rgl_*_obj_*"); QCOMPARE(description.boardSdk.versionDetection.regex, R"(\d+\.\d+\.\w+)"); - QCOMPARE(description.boardSdk.versionDetection.isFile, false); McuPackagePtr boardSdk{targetFactory.createPackage(description.boardSdk)}; const auto *versionDetector{boardSdk->getVersionDetector()}; QVERIFY(versionDetector != nullptr); - QCOMPARE(typeid(*versionDetector).name(), typeid(McuPackageDirectoryVersionDetector).name()); + QCOMPARE(typeid(*versionDetector).name(), typeid(McuPackagePathVersionDetector).name()); } void McuSupportTest::test_resolveEnvironmentVariablesInDefaultPath()