forked from qt-creator/qt-creator
McuSupport: Pass versioning from json to McuPackage ctor
Use versions parameter from JSON kits. Instead of setting version in separate step pass it directly to ctor. Change-Id: I7ac9017d56dafa316f95ba4c504dcb0af641dbdc Reviewed-by: Dawid Śliwa <dawid.sliwa@qt.io> Reviewed-by: Yasser Grimes <yasser.grimes@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
@@ -51,7 +51,7 @@ public:
|
|||||||
virtual QString cmakeVariableName() const = 0;
|
virtual QString cmakeVariableName() const = 0;
|
||||||
virtual QString environmentVariableName() const = 0;
|
virtual QString environmentVariableName() const = 0;
|
||||||
virtual bool isAddToSystemPath() const = 0;
|
virtual bool isAddToSystemPath() const = 0;
|
||||||
virtual void setVersions(const QStringList &) = 0;
|
virtual QStringList versions() const = 0;
|
||||||
|
|
||||||
virtual Utils::FilePath basePath() const = 0;
|
virtual Utils::FilePath basePath() const = 0;
|
||||||
virtual Utils::FilePath path() const = 0;
|
virtual Utils::FilePath path() const = 0;
|
||||||
|
|||||||
@@ -57,6 +57,7 @@ McuPackage::McuPackage(const SettingsHandler::Ptr &settingsHandler,
|
|||||||
const QString &settingsKey,
|
const QString &settingsKey,
|
||||||
const QString &cmakeVarName,
|
const QString &cmakeVarName,
|
||||||
const QString &envVarName,
|
const QString &envVarName,
|
||||||
|
const QStringList &versions,
|
||||||
const QString &downloadUrl,
|
const QString &downloadUrl,
|
||||||
const McuPackageVersionDetector *versionDetector,
|
const McuPackageVersionDetector *versionDetector,
|
||||||
const bool addToSystemPath,
|
const bool addToSystemPath,
|
||||||
@@ -68,6 +69,7 @@ McuPackage::McuPackage(const SettingsHandler::Ptr &settingsHandler,
|
|||||||
, m_settingsKey(settingsKey)
|
, m_settingsKey(settingsKey)
|
||||||
, m_versionDetector(versionDetector)
|
, m_versionDetector(versionDetector)
|
||||||
, m_relativePathModifier(relativePathModifier)
|
, m_relativePathModifier(relativePathModifier)
|
||||||
|
, m_versions(versions)
|
||||||
, m_cmakeVariableName(cmakeVarName)
|
, m_cmakeVariableName(cmakeVarName)
|
||||||
, m_environmentVariableName(envVarName)
|
, m_environmentVariableName(envVarName)
|
||||||
, m_downloadUrl(downloadUrl)
|
, m_downloadUrl(downloadUrl)
|
||||||
@@ -101,9 +103,9 @@ bool McuPackage::isAddToSystemPath() const
|
|||||||
return m_addToSystemPath;
|
return m_addToSystemPath;
|
||||||
}
|
}
|
||||||
|
|
||||||
void McuPackage::setVersions(const QStringList &versions)
|
QStringList McuPackage::versions() const
|
||||||
{
|
{
|
||||||
m_versions = versions;
|
return m_versions;
|
||||||
}
|
}
|
||||||
|
|
||||||
FilePath McuPackage::basePath() const
|
FilePath McuPackage::basePath() const
|
||||||
@@ -279,6 +281,7 @@ McuToolChainPackage::McuToolChainPackage(const SettingsHandler::Ptr &settingsHan
|
|||||||
const FilePath &detectionPath,
|
const FilePath &detectionPath,
|
||||||
const QString &settingsKey,
|
const QString &settingsKey,
|
||||||
McuToolChainPackage::ToolChainType type,
|
McuToolChainPackage::ToolChainType type,
|
||||||
|
const QStringList &versions,
|
||||||
const QString &cmakeVarName,
|
const QString &cmakeVarName,
|
||||||
const QString &envVarName,
|
const QString &envVarName,
|
||||||
const McuPackageVersionDetector *versionDetector)
|
const McuPackageVersionDetector *versionDetector)
|
||||||
@@ -289,7 +292,8 @@ McuToolChainPackage::McuToolChainPackage(const SettingsHandler::Ptr &settingsHan
|
|||||||
settingsKey,
|
settingsKey,
|
||||||
cmakeVarName,
|
cmakeVarName,
|
||||||
envVarName,
|
envVarName,
|
||||||
{},
|
versions,
|
||||||
|
{}, // url
|
||||||
versionDetector)
|
versionDetector)
|
||||||
, m_type(type)
|
, m_type(type)
|
||||||
{}
|
{}
|
||||||
|
|||||||
@@ -62,6 +62,7 @@ public:
|
|||||||
const QString &settingsKey,
|
const QString &settingsKey,
|
||||||
const QString &cmakeVarName,
|
const QString &cmakeVarName,
|
||||||
const QString &envVarName,
|
const QString &envVarName,
|
||||||
|
const QStringList &versions = {},
|
||||||
const QString &downloadUrl = {},
|
const QString &downloadUrl = {},
|
||||||
const McuPackageVersionDetector *versionDetector = nullptr,
|
const McuPackageVersionDetector *versionDetector = nullptr,
|
||||||
const bool addToPath = false,
|
const bool addToPath = false,
|
||||||
@@ -73,7 +74,7 @@ public:
|
|||||||
QString cmakeVariableName() const override;
|
QString cmakeVariableName() const override;
|
||||||
QString environmentVariableName() const override;
|
QString environmentVariableName() const override;
|
||||||
bool isAddToSystemPath() const override;
|
bool isAddToSystemPath() const override;
|
||||||
void setVersions(const QStringList &versions) override;
|
QStringList versions() const override;
|
||||||
|
|
||||||
Utils::FilePath basePath() const override;
|
Utils::FilePath basePath() const override;
|
||||||
Utils::FilePath path() const override;
|
Utils::FilePath path() const override;
|
||||||
@@ -129,7 +130,8 @@ public:
|
|||||||
const Utils::FilePath &detectionPath,
|
const Utils::FilePath &detectionPath,
|
||||||
const QString &settingsKey,
|
const QString &settingsKey,
|
||||||
ToolChainType toolchainType,
|
ToolChainType toolchainType,
|
||||||
const QString &cmakeVarName = {},
|
const QStringList &versions,
|
||||||
|
const QString &cmakeVarName,
|
||||||
const QString &envVarName = {},
|
const QString &envVarName = {},
|
||||||
const McuPackageVersionDetector *versionDetector = nullptr);
|
const McuPackageVersionDetector *versionDetector = nullptr);
|
||||||
|
|
||||||
|
|||||||
@@ -145,7 +145,8 @@ McuPackagePtr createBoardSdkPackage(const SettingsHandler::Ptr &settingsHandler,
|
|||||||
desc.boardSdk.envVar, // settings key
|
desc.boardSdk.envVar, // settings key
|
||||||
"QUL_BOARD_SDK_DIR", // cmake var
|
"QUL_BOARD_SDK_DIR", // cmake var
|
||||||
desc.boardSdk.envVar, // env var
|
desc.boardSdk.envVar, // env var
|
||||||
{}, // download URL
|
desc.boardSdk.versions,
|
||||||
|
{}, // download URL
|
||||||
versionDetector)};
|
versionDetector)};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -170,6 +171,7 @@ McuPackagePtr createFreeRTOSSourcesPackage(const SettingsHandler::Ptr &settingsH
|
|||||||
QString{Constants::SETTINGS_KEY_FREERTOS_PREFIX}.append(envVarPrefix),
|
QString{Constants::SETTINGS_KEY_FREERTOS_PREFIX}.append(envVarPrefix),
|
||||||
"FREERTOS_DIR", // cmake var
|
"FREERTOS_DIR", // cmake var
|
||||||
envVar, // env var
|
envVar, // env var
|
||||||
|
{}, // versions
|
||||||
"https://freertos.org")}; // download url
|
"https://freertos.org")}; // download url
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -190,30 +192,25 @@ McuPackagePtr createUnsupportedToolChainFilePackage(const SettingsHandler::Ptr &
|
|||||||
McuToolChainPackagePtr createUnsupportedToolChainPackage(const SettingsHandler::Ptr &settingsHandler)
|
McuToolChainPackagePtr createUnsupportedToolChainPackage(const SettingsHandler::Ptr &settingsHandler)
|
||||||
{
|
{
|
||||||
return McuToolChainPackagePtr{new McuToolChainPackage(
|
return McuToolChainPackagePtr{new McuToolChainPackage(
|
||||||
settingsHandler, {}, {}, {}, {}, McuToolChainPackage::ToolChainType::Unsupported)};
|
settingsHandler, {}, {}, {}, {}, McuToolChainPackage::ToolChainType::Unsupported, {}, {})};
|
||||||
}
|
}
|
||||||
|
|
||||||
McuToolChainPackagePtr createMsvcToolChainPackage(const SettingsHandler::Ptr &settingsHandler)
|
McuToolChainPackagePtr createMsvcToolChainPackage(const SettingsHandler::Ptr &settingsHandler,
|
||||||
|
const QStringList &versions)
|
||||||
{
|
{
|
||||||
return McuToolChainPackagePtr{new McuToolChainPackage(settingsHandler,
|
return McuToolChainPackagePtr{new McuToolChainPackage(
|
||||||
{},
|
settingsHandler, {}, {}, {}, {}, McuToolChainPackage::ToolChainType::MSVC, versions, {})};
|
||||||
{},
|
|
||||||
{},
|
|
||||||
{},
|
|
||||||
McuToolChainPackage::ToolChainType::MSVC)};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
McuToolChainPackagePtr createGccToolChainPackage(const SettingsHandler::Ptr &settingsHandler)
|
McuToolChainPackagePtr createGccToolChainPackage(const SettingsHandler::Ptr &settingsHandler,
|
||||||
|
const QStringList &versions)
|
||||||
{
|
{
|
||||||
return McuToolChainPackagePtr{new McuToolChainPackage(settingsHandler,
|
return McuToolChainPackagePtr{new McuToolChainPackage(
|
||||||
{},
|
settingsHandler, {}, {}, {}, {}, McuToolChainPackage::ToolChainType::GCC, versions, {})};
|
||||||
{},
|
|
||||||
{},
|
|
||||||
{},
|
|
||||||
McuToolChainPackage::ToolChainType::GCC)};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
McuToolChainPackagePtr createArmGccToolchainPackage(const SettingsHandler::Ptr &settingsHandler)
|
McuToolChainPackagePtr createArmGccToolchainPackage(const SettingsHandler::Ptr &settingsHandler,
|
||||||
|
const QStringList &versions)
|
||||||
{
|
{
|
||||||
const char envVar[] = "ARMGCC_DIR";
|
const char envVar[] = "ARMGCC_DIR";
|
||||||
|
|
||||||
@@ -244,12 +241,14 @@ McuToolChainPackagePtr createArmGccToolchainPackage(const SettingsHandler::Ptr &
|
|||||||
detectionPath,
|
detectionPath,
|
||||||
"GNUArmEmbeddedToolchain", // settingsKey
|
"GNUArmEmbeddedToolchain", // settingsKey
|
||||||
McuToolChainPackage::ToolChainType::ArmGcc, // toolchainType
|
McuToolChainPackage::ToolChainType::ArmGcc, // toolchainType
|
||||||
Constants::TOOLCHAIN_DIR_CMAKE_VARIABLE, // cmake var
|
versions,
|
||||||
envVar, // env var
|
Constants::TOOLCHAIN_DIR_CMAKE_VARIABLE, // cmake var
|
||||||
|
envVar, // env var
|
||||||
versionDetector)};
|
versionDetector)};
|
||||||
}
|
}
|
||||||
|
|
||||||
McuToolChainPackagePtr createGhsToolchainPackage(const SettingsHandler::Ptr &settingsHandler)
|
McuToolChainPackagePtr createGhsToolchainPackage(const SettingsHandler::Ptr &settingsHandler,
|
||||||
|
const QStringList &versions)
|
||||||
{
|
{
|
||||||
const char envVar[] = "GHS_COMPILER_DIR";
|
const char envVar[] = "GHS_COMPILER_DIR";
|
||||||
|
|
||||||
@@ -267,12 +266,14 @@ McuToolChainPackagePtr createGhsToolchainPackage(const SettingsHandler::Ptr &set
|
|||||||
FilePath("ccv850").withExecutableSuffix(), // detectionPath
|
FilePath("ccv850").withExecutableSuffix(), // detectionPath
|
||||||
"GHSToolchain", // settingsKey
|
"GHSToolchain", // settingsKey
|
||||||
McuToolChainPackage::ToolChainType::GHS, // toolchainType
|
McuToolChainPackage::ToolChainType::GHS, // toolchainType
|
||||||
Constants::TOOLCHAIN_DIR_CMAKE_VARIABLE, // cmake var
|
versions,
|
||||||
envVar, // env var
|
Constants::TOOLCHAIN_DIR_CMAKE_VARIABLE, // cmake var
|
||||||
|
envVar, // env var
|
||||||
versionDetector)};
|
versionDetector)};
|
||||||
}
|
}
|
||||||
|
|
||||||
McuToolChainPackagePtr createGhsArmToolchainPackage(const SettingsHandler::Ptr &settingsHandler)
|
McuToolChainPackagePtr createGhsArmToolchainPackage(const SettingsHandler::Ptr &settingsHandler,
|
||||||
|
const QStringList &versions)
|
||||||
{
|
{
|
||||||
const char envVar[] = "GHS_ARM_COMPILER_DIR";
|
const char envVar[] = "GHS_ARM_COMPILER_DIR";
|
||||||
|
|
||||||
@@ -290,12 +291,14 @@ McuToolChainPackagePtr createGhsArmToolchainPackage(const SettingsHandler::Ptr &
|
|||||||
FilePath("cxarm").withExecutableSuffix(), // detectionPath
|
FilePath("cxarm").withExecutableSuffix(), // detectionPath
|
||||||
"GHSArmToolchain", // settingsKey
|
"GHSArmToolchain", // settingsKey
|
||||||
McuToolChainPackage::ToolChainType::GHSArm, // toolchainType
|
McuToolChainPackage::ToolChainType::GHSArm, // toolchainType
|
||||||
Constants::TOOLCHAIN_DIR_CMAKE_VARIABLE, // cmake var
|
versions,
|
||||||
envVar, // env var
|
Constants::TOOLCHAIN_DIR_CMAKE_VARIABLE, // cmake var
|
||||||
|
envVar, // env var
|
||||||
versionDetector)};
|
versionDetector)};
|
||||||
}
|
}
|
||||||
|
|
||||||
McuToolChainPackagePtr createIarToolChainPackage(const SettingsHandler::Ptr &settingsHandler)
|
McuToolChainPackagePtr createIarToolChainPackage(const SettingsHandler::Ptr &settingsHandler,
|
||||||
|
const QStringList &versions)
|
||||||
{
|
{
|
||||||
const char envVar[] = "IAR_ARM_COMPILER_DIR";
|
const char envVar[] = "IAR_ARM_COMPILER_DIR";
|
||||||
|
|
||||||
@@ -326,6 +329,7 @@ McuToolChainPackagePtr createIarToolChainPackage(const SettingsHandler::Ptr &set
|
|||||||
detectionPath,
|
detectionPath,
|
||||||
"IARToolchain", // settings key
|
"IARToolchain", // settings key
|
||||||
McuToolChainPackage::ToolChainType::IAR, // toolchainType
|
McuToolChainPackage::ToolChainType::IAR, // toolchainType
|
||||||
|
versions,
|
||||||
Constants::TOOLCHAIN_DIR_CMAKE_VARIABLE, // cmake var
|
Constants::TOOLCHAIN_DIR_CMAKE_VARIABLE, // cmake var
|
||||||
envVar, // env var
|
envVar, // env var
|
||||||
versionDetector)};
|
versionDetector)};
|
||||||
@@ -357,6 +361,7 @@ static McuPackagePtr createStm32CubeProgrammerPackage(const SettingsHandler::Ptr
|
|||||||
"Stm32CubeProgrammer",
|
"Stm32CubeProgrammer",
|
||||||
{}, // cmake var
|
{}, // cmake var
|
||||||
{}, // env var
|
{}, // env var
|
||||||
|
{}, // versions
|
||||||
"https://www.st.com/en/development-tools/stm32cubeprog.html", // download url
|
"https://www.st.com/en/development-tools/stm32cubeprog.html", // download url
|
||||||
nullptr, // version detector
|
nullptr, // version detector
|
||||||
true, // add to path
|
true, // add to path
|
||||||
@@ -395,6 +400,7 @@ static McuPackagePtr createMcuXpressoIdePackage(const SettingsHandler::Ptr &sett
|
|||||||
"MCUXpressoIDE", // settings key
|
"MCUXpressoIDE", // settings key
|
||||||
"MCUXPRESSO_IDE_PATH", // cmake var
|
"MCUXPRESSO_IDE_PATH", // cmake var
|
||||||
envVar,
|
envVar,
|
||||||
|
{}, // versions
|
||||||
"https://www.nxp.com/mcuxpresso/ide")}; // download url
|
"https://www.nxp.com/mcuxpresso/ide")}; // download url
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -459,15 +465,25 @@ static McuAbstractTargetFactory::Ptr createFactory(bool isLegacy,
|
|||||||
McuAbstractTargetFactory::Ptr result;
|
McuAbstractTargetFactory::Ptr result;
|
||||||
if (isLegacy) {
|
if (isLegacy) {
|
||||||
static const QHash<QString, ToolchainCompilerCreator> toolchainCreators = {
|
static const QHash<QString, ToolchainCompilerCreator> toolchainCreators = {
|
||||||
{{"armgcc"},
|
{{"armgcc"}, {[settingsHandler](const QStringList &versions) {
|
||||||
{[settingsHandler] { return createArmGccToolchainPackage(settingsHandler); }}},
|
return createArmGccToolchainPackage(settingsHandler, versions);
|
||||||
|
}}},
|
||||||
{{"greenhills"},
|
{{"greenhills"},
|
||||||
[settingsHandler] { return createGhsToolchainPackage(settingsHandler); }},
|
[settingsHandler](const QStringList &versions) {
|
||||||
{{"iar"}, {[settingsHandler] { return createIarToolChainPackage(settingsHandler); }}},
|
return createGhsToolchainPackage(settingsHandler, versions);
|
||||||
{{"msvc"}, {[settingsHandler] { return createMsvcToolChainPackage(settingsHandler); }}},
|
}},
|
||||||
{{"gcc"}, {[settingsHandler] { return createGccToolChainPackage(settingsHandler); }}},
|
{{"iar"}, {[settingsHandler](const QStringList &versions) {
|
||||||
{{"arm-greenhills"},
|
return createIarToolChainPackage(settingsHandler, versions);
|
||||||
{[settingsHandler] { return createGhsArmToolchainPackage(settingsHandler); }}},
|
}}},
|
||||||
|
{{"msvc"}, {[settingsHandler](const QStringList &versions) {
|
||||||
|
return createMsvcToolChainPackage(settingsHandler, versions);
|
||||||
|
}}},
|
||||||
|
{{"gcc"}, {[settingsHandler](const QStringList &versions) {
|
||||||
|
return createGccToolChainPackage(settingsHandler, versions);
|
||||||
|
}}},
|
||||||
|
{{"arm-greenhills"}, {[settingsHandler](const QStringList &versions) {
|
||||||
|
return createGhsArmToolchainPackage(settingsHandler, versions);
|
||||||
|
}}},
|
||||||
};
|
};
|
||||||
|
|
||||||
const FilePath toolchainFilePrefix = qtMcuSdkPath / Constants::QUL_TOOLCHAIN_CMAKE_DIR;
|
const FilePath toolchainFilePrefix = qtMcuSdkPath / Constants::QUL_TOOLCHAIN_CMAKE_DIR;
|
||||||
@@ -568,6 +584,11 @@ static QFileInfoList targetDescriptionFiles(const Utils::FilePath &dir)
|
|||||||
|
|
||||||
static PackageDescription parsePackage(const QJsonObject &cmakeEntry)
|
static PackageDescription parsePackage(const QJsonObject &cmakeEntry)
|
||||||
{
|
{
|
||||||
|
const QVariantList versionsVariantList = cmakeEntry["versions"].toArray().toVariantList();
|
||||||
|
const auto versions = Utils::transform<QStringList>(versionsVariantList,
|
||||||
|
[&](const QVariant &version) {
|
||||||
|
return version.toString();
|
||||||
|
});
|
||||||
return {cmakeEntry["label"].toString(),
|
return {cmakeEntry["label"].toString(),
|
||||||
cmakeEntry["envVar"].toString(),
|
cmakeEntry["envVar"].toString(),
|
||||||
cmakeEntry["cmakeVar"].toString(),
|
cmakeEntry["cmakeVar"].toString(),
|
||||||
@@ -575,7 +596,7 @@ static PackageDescription parsePackage(const QJsonObject &cmakeEntry)
|
|||||||
cmakeEntry["setting"].toString(),
|
cmakeEntry["setting"].toString(),
|
||||||
FilePath::fromString(cmakeEntry["defaultValue"].toString()),
|
FilePath::fromString(cmakeEntry["defaultValue"].toString()),
|
||||||
FilePath::fromString(cmakeEntry["validation"].toString()),
|
FilePath::fromString(cmakeEntry["validation"].toString()),
|
||||||
{},
|
versions,
|
||||||
false};
|
false};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -65,12 +65,14 @@ Utils::FilePath kitsPath(const Utils::FilePath &dir);
|
|||||||
McuPackagePtr createUnsupportedToolChainFilePackage(const SettingsHandler::Ptr &,
|
McuPackagePtr createUnsupportedToolChainFilePackage(const SettingsHandler::Ptr &,
|
||||||
const Utils::FilePath &qtMcuSdkPath);
|
const Utils::FilePath &qtMcuSdkPath);
|
||||||
McuToolChainPackagePtr createUnsupportedToolChainPackage(const SettingsHandler::Ptr &);
|
McuToolChainPackagePtr createUnsupportedToolChainPackage(const SettingsHandler::Ptr &);
|
||||||
McuToolChainPackagePtr createIarToolChainPackage(const SettingsHandler::Ptr &);
|
McuToolChainPackagePtr createIarToolChainPackage(const SettingsHandler::Ptr &, const QStringList &);
|
||||||
McuToolChainPackagePtr createGccToolChainPackage(const SettingsHandler::Ptr &);
|
McuToolChainPackagePtr createGccToolChainPackage(const SettingsHandler::Ptr &, const QStringList &);
|
||||||
McuToolChainPackagePtr createArmGccToolchainPackage(const SettingsHandler::Ptr &);
|
McuToolChainPackagePtr createArmGccToolchainPackage(const SettingsHandler::Ptr &,
|
||||||
McuToolChainPackagePtr createMsvcToolChainPackage(const SettingsHandler::Ptr &);
|
const QStringList &);
|
||||||
McuToolChainPackagePtr createGhsToolchainPackage(const SettingsHandler::Ptr &);
|
McuToolChainPackagePtr createMsvcToolChainPackage(const SettingsHandler::Ptr &, const QStringList &);
|
||||||
McuToolChainPackagePtr createGhsArmToolchainPackage(const SettingsHandler::Ptr &);
|
McuToolChainPackagePtr createGhsToolchainPackage(const SettingsHandler::Ptr &, const QStringList &);
|
||||||
|
McuToolChainPackagePtr createGhsArmToolchainPackage(const SettingsHandler::Ptr &,
|
||||||
|
const QStringList &);
|
||||||
|
|
||||||
McuPackagePtr createBoardSdkPackage(const SettingsHandler::Ptr &, const McuTargetDescription &);
|
McuPackagePtr createBoardSdkPackage(const SettingsHandler::Ptr &, const McuTargetDescription &);
|
||||||
McuPackagePtr createFreeRTOSSourcesPackage(const SettingsHandler::Ptr &settingsHandler,
|
McuPackagePtr createFreeRTOSSourcesPackage(const SettingsHandler::Ptr &settingsHandler,
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ struct PackageDescription
|
|||||||
QString setting;
|
QString setting;
|
||||||
Utils::FilePath defaultPath;
|
Utils::FilePath defaultPath;
|
||||||
Utils::FilePath validationPath;
|
Utils::FilePath validationPath;
|
||||||
QList<QVersionNumber> versions;
|
QStringList versions;
|
||||||
bool shouldAddToSystemPath;
|
bool shouldAddToSystemPath;
|
||||||
}; //struct PackageDescription
|
}; //struct PackageDescription
|
||||||
|
|
||||||
|
|||||||
@@ -124,6 +124,7 @@ McuPackagePtr McuTargetFactory::createPackage(const PackageDescription &pkgDesc)
|
|||||||
pkgDesc.setting,
|
pkgDesc.setting,
|
||||||
pkgDesc.cmakeVar,
|
pkgDesc.cmakeVar,
|
||||||
pkgDesc.envVar,
|
pkgDesc.envVar,
|
||||||
|
pkgDesc.versions,
|
||||||
}};
|
}};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -136,7 +137,14 @@ McuToolChainPackage *McuTargetFactory::createToolchain(
|
|||||||
= toolchainTypeMapping.value(toolchain.id, McuToolChainPackage::ToolChainType::Unsupported);
|
= toolchainTypeMapping.value(toolchain.id, McuToolChainPackage::ToolChainType::Unsupported);
|
||||||
|
|
||||||
if (isDesktopToolchain(toolchainType))
|
if (isDesktopToolchain(toolchainType))
|
||||||
return new McuToolChainPackage{settingsHandler, {}, {}, {}, {}, toolchainType};
|
return new McuToolChainPackage{settingsHandler,
|
||||||
|
{},
|
||||||
|
{},
|
||||||
|
{},
|
||||||
|
{},
|
||||||
|
toolchainType,
|
||||||
|
toolchain.versions,
|
||||||
|
compilerDescription.cmakeVar};
|
||||||
else if (!isToolchainDescriptionValid(toolchain))
|
else if (!isToolchainDescriptionValid(toolchain))
|
||||||
toolchainType = McuToolChainPackage::ToolChainType::Unsupported;
|
toolchainType = McuToolChainPackage::ToolChainType::Unsupported;
|
||||||
|
|
||||||
@@ -147,6 +155,7 @@ McuToolChainPackage *McuTargetFactory::createToolchain(
|
|||||||
compilerDescription.validationPath,
|
compilerDescription.validationPath,
|
||||||
compilerDescription.setting,
|
compilerDescription.setting,
|
||||||
toolchainType,
|
toolchainType,
|
||||||
|
toolchain.versions,
|
||||||
compilerDescription.cmakeVar,
|
compilerDescription.cmakeVar,
|
||||||
compilerDescription.envVar,
|
compilerDescription.envVar,
|
||||||
nullptr, // McuPackageVersionDetector
|
nullptr, // McuPackageVersionDetector
|
||||||
|
|||||||
@@ -78,7 +78,6 @@ QPair<Targets, Packages> McuTargetFactoryLegacy::createTargets(const Sdk::McuTar
|
|||||||
boardSdkPkgs.insert(desc.boardSdk.envVar, boardSdkPkg);
|
boardSdkPkgs.insert(desc.boardSdk.envVar, boardSdkPkg);
|
||||||
}
|
}
|
||||||
McuPackagePtr boardSdkPkg{boardSdkPkgs.value(desc.boardSdk.envVar)};
|
McuPackagePtr boardSdkPkg{boardSdkPkgs.value(desc.boardSdk.envVar)};
|
||||||
boardSdkPkg->setVersions(desc.boardSdk.versions);
|
|
||||||
boardSdkDefaultPath = boardSdkPkg->defaultPath();
|
boardSdkDefaultPath = boardSdkPkg->defaultPath();
|
||||||
required3rdPartyPkgs.insert(boardSdkPkg);
|
required3rdPartyPkgs.insert(boardSdkPkg);
|
||||||
}
|
}
|
||||||
@@ -119,11 +118,10 @@ McuAbstractTargetFactory::AdditionalPackages McuTargetFactoryLegacy::getAddition
|
|||||||
McuToolChainPackagePtr McuTargetFactoryLegacy::getToolchainCompiler(
|
McuToolChainPackagePtr McuTargetFactoryLegacy::getToolchainCompiler(
|
||||||
const Sdk::McuTargetDescription::Toolchain &desc) const
|
const Sdk::McuTargetDescription::Toolchain &desc) const
|
||||||
{
|
{
|
||||||
auto compilerCreator = toolchainCreators.value(desc.id, [this] {
|
auto compilerCreator = toolchainCreators.value(desc.id, [this](const QStringList & /*versions*/) {
|
||||||
return McuToolChainPackagePtr{Sdk::createUnsupportedToolChainPackage(settingsHandler)};
|
return McuToolChainPackagePtr{Sdk::createUnsupportedToolChainPackage(settingsHandler)};
|
||||||
});
|
});
|
||||||
McuToolChainPackagePtr toolchainPackage = compilerCreator();
|
McuToolChainPackagePtr toolchainPackage = compilerCreator(desc.versions);
|
||||||
toolchainPackage->setVersions(desc.versions);
|
|
||||||
return toolchainPackage;
|
return toolchainPackage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ namespace McuSupport::Internal {
|
|||||||
|
|
||||||
class McuPackage;
|
class McuPackage;
|
||||||
|
|
||||||
using ToolchainCompilerCreator = std::function<McuToolChainPackagePtr()>;
|
using ToolchainCompilerCreator = std::function<McuToolChainPackagePtr(const QStringList &version)>;
|
||||||
|
|
||||||
class McuTargetFactoryLegacy : public McuAbstractTargetFactory
|
class McuTargetFactoryLegacy : public McuAbstractTargetFactory
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -61,7 +61,8 @@ constexpr auto armgcc_nxp_1050_json = R"({
|
|||||||
"toolchain": {
|
"toolchain": {
|
||||||
"id": "armgcc",
|
"id": "armgcc",
|
||||||
"versions": [
|
"versions": [
|
||||||
"9.3.1"
|
"9.3.1",
|
||||||
|
"10.3.1"
|
||||||
],
|
],
|
||||||
"compiler": {
|
"compiler": {
|
||||||
"id": "ARMGCC_DIR",
|
"id": "ARMGCC_DIR",
|
||||||
@@ -85,13 +86,18 @@ constexpr auto armgcc_nxp_1050_json = R"({
|
|||||||
"boardSdk": {
|
"boardSdk": {
|
||||||
"envVar": "EVKB_IMXRT1050_SDK_PATH",
|
"envVar": "EVKB_IMXRT1050_SDK_PATH",
|
||||||
"versions": [
|
"versions": [
|
||||||
"2.10.0"
|
"2.11.0"
|
||||||
],
|
],
|
||||||
"cmakeEntries": [
|
"cmakeEntries": [
|
||||||
{
|
{
|
||||||
"id": "NXP_SDK_DIR",
|
"id": "NXP_SDK_DIR",
|
||||||
"label": "Board SDK for MIMXRT1050-EVK",
|
"label": "Board SDK for MIMXRT1050-EVK",
|
||||||
"cmakeVar": "QUL_BOARD_SDK_DIR",
|
"cmakeVar": "QUL_BOARD_SDK_DIR",
|
||||||
|
"envVar": "EVKB_IMXRT1050_SDK_PATH",
|
||||||
|
"setting": "EVKB_IMXRT1050_SDK_PATH",
|
||||||
|
"versions": [
|
||||||
|
"2.11.0"
|
||||||
|
],
|
||||||
"type": "path",
|
"type": "path",
|
||||||
"optional": false
|
"optional": false
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,7 +61,8 @@ constexpr auto armgcc_stm32f769i_freertos_json = R"({
|
|||||||
"toolchain": {
|
"toolchain": {
|
||||||
"id": "armgcc",
|
"id": "armgcc",
|
||||||
"versions": [
|
"versions": [
|
||||||
"9.3.1"
|
"9.3.1",
|
||||||
|
"10.3.1"
|
||||||
],
|
],
|
||||||
"compiler": {
|
"compiler": {
|
||||||
"id": "ARMGCC_DIR",
|
"id": "ARMGCC_DIR",
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ public:
|
|||||||
MOCK_METHOD(QString, environmentVariableName, (), (const));
|
MOCK_METHOD(QString, environmentVariableName, (), (const));
|
||||||
MOCK_METHOD(bool, isAddToSystemPath, (), (const));
|
MOCK_METHOD(bool, isAddToSystemPath, (), (const));
|
||||||
MOCK_METHOD(bool, writeToSettings, (), (const));
|
MOCK_METHOD(bool, writeToSettings, (), (const));
|
||||||
MOCK_METHOD(void, setVersions, (const QStringList &) );
|
MOCK_METHOD(QStringList, versions, (), (const));
|
||||||
|
|
||||||
MOCK_METHOD(QWidget *, widget, ());
|
MOCK_METHOD(QWidget *, widget, ());
|
||||||
}; // class PackageMock
|
}; // class PackageMock
|
||||||
|
|||||||
@@ -73,6 +73,9 @@ const char armGccEnvVar[]{"ARMGCC_DIR"};
|
|||||||
const char armGccLabel[]{"GNU Arm Embedded Toolchain"};
|
const char armGccLabel[]{"GNU Arm Embedded Toolchain"};
|
||||||
const char armGccToolchainFilePath[]{"/opt/qtformcu/2.2/lib/cmake/Qul/toolchain/armgcc.cmake"};
|
const char armGccToolchainFilePath[]{"/opt/qtformcu/2.2/lib/cmake/Qul/toolchain/armgcc.cmake"};
|
||||||
const char armGcc[]{"armgcc"};
|
const char armGcc[]{"armgcc"};
|
||||||
|
const char armGccVersion[]{"9.3.1"};
|
||||||
|
const char armGccNewVersion[]{"10.3.1"};
|
||||||
|
const QStringList boardSdkVersions{{"2.11.0"}};
|
||||||
const char cmakeToolchainLabel[]{"CMake Toolchain File"};
|
const char cmakeToolchainLabel[]{"CMake Toolchain File"};
|
||||||
const char fallbackDir[]{"/abc/def/fallback"};
|
const char fallbackDir[]{"/abc/def/fallback"};
|
||||||
const char freeRtosCMakeVar[]{"FREERTOS_DIR"};
|
const char freeRtosCMakeVar[]{"FREERTOS_DIR"};
|
||||||
@@ -84,11 +87,13 @@ const char freeRtosSetting[]{"Freertos"};
|
|||||||
const char greenhillToolchainFilePath[]{"/opt/qtformcu/2.2/lib/cmake/Qul/toolchain/ghs.cmake"};
|
const char greenhillToolchainFilePath[]{"/opt/qtformcu/2.2/lib/cmake/Qul/toolchain/ghs.cmake"};
|
||||||
const char greenhillCompilerDir[]{"/abs/ghs"};
|
const char greenhillCompilerDir[]{"/abs/ghs"};
|
||||||
const char greenhillSetting[]{"GHSToolchain"};
|
const char greenhillSetting[]{"GHSToolchain"};
|
||||||
|
const QStringList greenhillVersions{{"2018.1.5"}};
|
||||||
const char iarDir[]{"/opt/iar/compiler"};
|
const char iarDir[]{"/opt/iar/compiler"};
|
||||||
const char iarEnvVar[]{"IAR_ARM_COMPILER_DIR"};
|
const char iarEnvVar[]{"IAR_ARM_COMPILER_DIR"};
|
||||||
const char iarLabel[]{"IAR ARM Compiler"};
|
const char iarLabel[]{"IAR ARM Compiler"};
|
||||||
const char iarSetting[]{"IARToolchain"};
|
const char iarSetting[]{"IARToolchain"};
|
||||||
const char iarToolchainFilePath[]{"/opt/qtformcu/2.2/lib/cmake/Qul/toolchain/iar.cmake"};
|
const char iarToolchainFilePath[]{"/opt/qtformcu/2.2/lib/cmake/Qul/toolchain/iar.cmake"};
|
||||||
|
const QStringList iarVersions{{"8.50.9"}};
|
||||||
const char iar[]{"iar"};
|
const char iar[]{"iar"};
|
||||||
const char id[]{"target_id"};
|
const char id[]{"target_id"};
|
||||||
const char name[]{"target_name"};
|
const char name[]{"target_name"};
|
||||||
@@ -157,7 +162,7 @@ void verifyIarToolchain(const McuToolChainPackagePtr &iarToolchainPackage)
|
|||||||
QCOMPARE(iarToolchain->detection(), ToolChain::UninitializedDetection);
|
QCOMPARE(iarToolchain->detection(), ToolChain::UninitializedDetection);
|
||||||
}
|
}
|
||||||
|
|
||||||
void verifyArmGccToolchain(const McuToolChainPackagePtr &armGccPackage)
|
void verifyArmGccToolchain(const McuToolChainPackagePtr &armGccPackage, const QStringList &versions)
|
||||||
{
|
{
|
||||||
//Fake register and fake detect compiler.
|
//Fake register and fake detect compiler.
|
||||||
Id armGccId{ProjectExplorer::Constants::GCC_TOOLCHAIN_TYPEID};
|
Id armGccId{ProjectExplorer::Constants::GCC_TOOLCHAIN_TYPEID};
|
||||||
@@ -173,13 +178,14 @@ void verifyArmGccToolchain(const McuToolChainPackagePtr &armGccPackage)
|
|||||||
QCOMPARE(armGccPackage->toolChainName(), armGcc);
|
QCOMPARE(armGccPackage->toolChainName(), armGcc);
|
||||||
QCOMPARE(armGccPackage->toolchainType(), McuToolChainPackage::ToolChainType::ArmGcc);
|
QCOMPARE(armGccPackage->toolchainType(), McuToolChainPackage::ToolChainType::ArmGcc);
|
||||||
QCOMPARE(armGccPackage->settingsKey(), armGccDirectorySetting);
|
QCOMPARE(armGccPackage->settingsKey(), armGccDirectorySetting);
|
||||||
|
QCOMPARE(armGccPackage->versions(), versions);
|
||||||
|
|
||||||
// FIXME(piotr.mucko): Re-enable when toolchains retrieval from McuToolChainPackage is unified for arm and iar.
|
// FIXME(piotr.mucko): Re-enable when toolchains retrieval from McuToolChainPackage is unified for arm and iar.
|
||||||
// armToolchain = armGccPackage->toolChain(cxxLanguageId);
|
// armToolchain = armGccPackage->toolChain(cxxLanguageId);
|
||||||
// QVERIFY(armToolchain != nullptr);
|
// QVERIFY(armToolchain != nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
void verifyGccToolchain(const McuToolChainPackagePtr &gccPackage)
|
void verifyGccToolchain(const McuToolChainPackagePtr &gccPackage, const QStringList &versions)
|
||||||
{
|
{
|
||||||
QVERIFY(gccPackage != nullptr);
|
QVERIFY(gccPackage != nullptr);
|
||||||
QCOMPARE(gccPackage->cmakeVariableName(), "");
|
QCOMPARE(gccPackage->cmakeVariableName(), "");
|
||||||
@@ -187,12 +193,14 @@ void verifyGccToolchain(const McuToolChainPackagePtr &gccPackage)
|
|||||||
QCOMPARE(gccPackage->isDesktopToolchain(), true);
|
QCOMPARE(gccPackage->isDesktopToolchain(), true);
|
||||||
QCOMPARE(gccPackage->toolChainName(), unsupported);
|
QCOMPARE(gccPackage->toolChainName(), unsupported);
|
||||||
QCOMPARE(gccPackage->toolchainType(), McuToolChainPackage::ToolChainType::GCC);
|
QCOMPARE(gccPackage->toolchainType(), McuToolChainPackage::ToolChainType::GCC);
|
||||||
|
QCOMPARE(gccPackage->versions(), versions);
|
||||||
}
|
}
|
||||||
|
|
||||||
void verifyTargetToolchains(const Targets &targets,
|
void verifyTargetToolchains(const Targets &targets,
|
||||||
const QString &toolchainFilePath,
|
const QString &toolchainFilePath,
|
||||||
const QString &compilerPath,
|
const QString &compilerPath,
|
||||||
const QString &compilerSetting)
|
const QString &compilerSetting,
|
||||||
|
const QStringList &versions)
|
||||||
{
|
{
|
||||||
QCOMPARE(targets.size(), 1);
|
QCOMPARE(targets.size(), 1);
|
||||||
const auto &target{targets.first()};
|
const auto &target{targets.first()};
|
||||||
@@ -208,6 +216,7 @@ void verifyTargetToolchains(const Targets &targets,
|
|||||||
QCOMPARE(toolchainCompiler->cmakeVariableName(), Constants::TOOLCHAIN_DIR_CMAKE_VARIABLE);
|
QCOMPARE(toolchainCompiler->cmakeVariableName(), Constants::TOOLCHAIN_DIR_CMAKE_VARIABLE);
|
||||||
QCOMPARE(toolchainCompiler->path().toString(), compilerPath);
|
QCOMPARE(toolchainCompiler->path().toString(), compilerPath);
|
||||||
QCOMPARE(toolchainCompiler->settingsKey(), compilerSetting);
|
QCOMPARE(toolchainCompiler->settingsKey(), compilerSetting);
|
||||||
|
QCOMPARE(toolchainCompiler->versions(), versions);
|
||||||
}
|
}
|
||||||
|
|
||||||
McuSupportTest::McuSupportTest()
|
McuSupportTest::McuSupportTest()
|
||||||
@@ -227,6 +236,7 @@ McuSupportTest::McuSupportTest()
|
|||||||
{}, // validation path
|
{}, // validation path
|
||||||
armGccDirectorySetting,
|
armGccDirectorySetting,
|
||||||
McuToolChainPackage::ToolChainType::ArmGcc,
|
McuToolChainPackage::ToolChainType::ArmGcc,
|
||||||
|
{armGccVersion},
|
||||||
Constants::TOOLCHAIN_DIR_CMAKE_VARIABLE,
|
Constants::TOOLCHAIN_DIR_CMAKE_VARIABLE,
|
||||||
armGccEnvVar}}
|
armGccEnvVar}}
|
||||||
, iarToolchainPackagePtr{new McuToolChainPackage{settingsMockPtr,
|
, iarToolchainPackagePtr{new McuToolChainPackage{settingsMockPtr,
|
||||||
@@ -235,6 +245,7 @@ McuSupportTest::McuSupportTest()
|
|||||||
{}, // validation path
|
{}, // validation path
|
||||||
iarSetting,
|
iarSetting,
|
||||||
McuToolChainPackage::ToolChainType::IAR,
|
McuToolChainPackage::ToolChainType::IAR,
|
||||||
|
{armGccVersion},
|
||||||
Constants::TOOLCHAIN_DIR_CMAKE_VARIABLE,
|
Constants::TOOLCHAIN_DIR_CMAKE_VARIABLE,
|
||||||
iarEnvVar}}
|
iarEnvVar}}
|
||||||
, platform{id, name, vendor}
|
, platform{id, name, vendor}
|
||||||
@@ -371,7 +382,8 @@ void McuSupportTest::test_parseToolchainFromJSON()
|
|||||||
|
|
||||||
void McuSupportTest::test_legacy_createIarToolchain()
|
void McuSupportTest::test_legacy_createIarToolchain()
|
||||||
{
|
{
|
||||||
McuToolChainPackagePtr iarToolchainPackage = Sdk::createIarToolChainPackage(settingsMockPtr);
|
McuToolChainPackagePtr iarToolchainPackage = Sdk::createIarToolChainPackage(settingsMockPtr,
|
||||||
|
iarVersions);
|
||||||
verifyIarToolchain(iarToolchainPackage);
|
verifyIarToolchain(iarToolchainPackage);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -385,30 +397,34 @@ void McuSupportTest::test_createIarToolchain()
|
|||||||
|
|
||||||
void McuSupportTest::test_legacy_createDesktopGccToolchain()
|
void McuSupportTest::test_legacy_createDesktopGccToolchain()
|
||||||
{
|
{
|
||||||
McuToolChainPackagePtr gccPackage = Sdk::createGccToolChainPackage(settingsMockPtr);
|
McuToolChainPackagePtr gccPackage = Sdk::createGccToolChainPackage(settingsMockPtr,
|
||||||
verifyGccToolchain(gccPackage);
|
{armGccNewVersion});
|
||||||
|
verifyGccToolchain(gccPackage, {armGccNewVersion});
|
||||||
}
|
}
|
||||||
|
|
||||||
void McuSupportTest::test_createDesktopGccToolchain()
|
void McuSupportTest::test_createDesktopGccToolchain()
|
||||||
{
|
{
|
||||||
const auto description = Sdk::parseDescriptionJson(gcc_desktop_json);
|
const auto description = Sdk::parseDescriptionJson(gcc_desktop_json);
|
||||||
McuToolChainPackagePtr gccPackage{targetFactory.createToolchain(description.toolchain)};
|
McuToolChainPackagePtr gccPackage{targetFactory.createToolchain(description.toolchain)};
|
||||||
verifyGccToolchain(gccPackage);
|
verifyGccToolchain(gccPackage, {});
|
||||||
}
|
}
|
||||||
|
|
||||||
void McuSupportTest::test_verifyManuallyCreatedArmGccToolchain()
|
void McuSupportTest::test_verifyManuallyCreatedArmGccToolchain()
|
||||||
{
|
{
|
||||||
verifyArmGccToolchain(armGccToolchainPackagePtr);
|
verifyArmGccToolchain(armGccToolchainPackagePtr, {armGccVersion});
|
||||||
}
|
}
|
||||||
|
|
||||||
void McuSupportTest::test_legacy_createArmGccToolchain()
|
void McuSupportTest::test_legacy_createArmGccToolchain()
|
||||||
{
|
{
|
||||||
McuToolChainPackagePtr armGccPackage = Sdk::createArmGccToolchainPackage(settingsMockPtr);
|
McuToolChainPackagePtr armGccPackage = Sdk::createArmGccToolchainPackage(settingsMockPtr,
|
||||||
verifyArmGccToolchain(armGccPackage);
|
{armGccVersion});
|
||||||
|
verifyArmGccToolchain(armGccPackage, {armGccVersion});
|
||||||
}
|
}
|
||||||
|
|
||||||
void McuSupportTest::test_createArmGccToolchain_data()
|
void McuSupportTest::test_createArmGccToolchain_data()
|
||||||
{
|
{
|
||||||
|
QStringList versions{armGccVersion, armGccNewVersion};
|
||||||
|
|
||||||
QTest::addColumn<QString>("json");
|
QTest::addColumn<QString>("json");
|
||||||
QTest::newRow("armgcc_nxp_1050_json") << armgcc_nxp_1050_json;
|
QTest::newRow("armgcc_nxp_1050_json") << armgcc_nxp_1050_json;
|
||||||
QTest::newRow("armgcc_stm32f769i_freertos_json") << armgcc_stm32f769i_freertos_json;
|
QTest::newRow("armgcc_stm32f769i_freertos_json") << armgcc_stm32f769i_freertos_json;
|
||||||
@@ -423,7 +439,7 @@ void McuSupportTest::test_createArmGccToolchain()
|
|||||||
|
|
||||||
const auto description = Sdk::parseDescriptionJson(json.toLocal8Bit());
|
const auto description = Sdk::parseDescriptionJson(json.toLocal8Bit());
|
||||||
McuToolChainPackagePtr armGccPackage{targetFactory.createToolchain(description.toolchain)};
|
McuToolChainPackagePtr armGccPackage{targetFactory.createToolchain(description.toolchain)};
|
||||||
verifyArmGccToolchain(armGccPackage);
|
verifyArmGccToolchain(armGccPackage, description.toolchain.versions);
|
||||||
}
|
}
|
||||||
|
|
||||||
void McuSupportTest::test_mapParsedToolchainIdToCorrespondingType_data()
|
void McuSupportTest::test_mapParsedToolchainIdToCorrespondingType_data()
|
||||||
@@ -681,7 +697,7 @@ void McuSupportTest::test_getFullToolchainFilePathFromTarget()
|
|||||||
void McuSupportTest::test_legacy_getPredefinedToolchainFilePackage()
|
void McuSupportTest::test_legacy_getPredefinedToolchainFilePackage()
|
||||||
{
|
{
|
||||||
QHash<QString, ToolchainCompilerCreator> toolchainCreators{
|
QHash<QString, ToolchainCompilerCreator> toolchainCreators{
|
||||||
{armGcc, [this] { return armGccToolchainPackagePtr; }}};
|
{armGcc, [this](const QStringList & /*versions*/) { return armGccToolchainPackagePtr; }}};
|
||||||
McuTargetFactoryLegacy legacyTargetFactory{toolchainCreators,
|
McuTargetFactoryLegacy legacyTargetFactory{toolchainCreators,
|
||||||
{{armGcc, armGccToolchainFilePackagePtr}},
|
{{armGcc, armGccToolchainFilePackagePtr}},
|
||||||
{},
|
{},
|
||||||
@@ -694,7 +710,7 @@ void McuSupportTest::test_legacy_getPredefinedToolchainFilePackage()
|
|||||||
void McuSupportTest::test_legacy_createUnsupportedToolchainFilePackage()
|
void McuSupportTest::test_legacy_createUnsupportedToolchainFilePackage()
|
||||||
{
|
{
|
||||||
QHash<QString, ToolchainCompilerCreator> toolchainCreators{
|
QHash<QString, ToolchainCompilerCreator> toolchainCreators{
|
||||||
{armGcc, [this] { return armGccToolchainPackagePtr; }}};
|
{armGcc, [this](const QStringList & /*versions*/) { return armGccToolchainPackagePtr; }}};
|
||||||
McuTargetFactoryLegacy legacyTargetFactory{toolchainCreators,
|
McuTargetFactoryLegacy legacyTargetFactory{toolchainCreators,
|
||||||
{{armGcc, armGccToolchainFilePackagePtr}},
|
{{armGcc, armGccToolchainFilePackagePtr}},
|
||||||
{},
|
{},
|
||||||
@@ -713,20 +729,26 @@ void McuSupportTest::test_legacy_createTargetWithToolchainPackages_data()
|
|||||||
QTest::addColumn<QString>("toolchainFilePath");
|
QTest::addColumn<QString>("toolchainFilePath");
|
||||||
QTest::addColumn<QString>("compilerPath");
|
QTest::addColumn<QString>("compilerPath");
|
||||||
QTest::addColumn<QString>("compilerSetting");
|
QTest::addColumn<QString>("compilerSetting");
|
||||||
|
QTest::addColumn<QStringList>("versions");
|
||||||
|
|
||||||
QTest::newRow("nxp1050") << armgcc_nxp_1050_json << armGccToolchainFilePath << armGccDir
|
QTest::newRow("nxp1050") << armgcc_nxp_1050_json << armGccToolchainFilePath << armGccDir
|
||||||
<< armGccDirectorySetting;
|
<< armGccDirectorySetting
|
||||||
|
<< QStringList{armGccVersion, armGccNewVersion};
|
||||||
QTest::newRow("stm32h750b") << armgcc_stm32h750b_metal_json << armGccToolchainFilePath
|
QTest::newRow("stm32h750b") << armgcc_stm32h750b_metal_json << armGccToolchainFilePath
|
||||||
<< armGccDir << armGccDirectorySetting;
|
<< armGccDir << armGccDirectorySetting
|
||||||
|
<< QStringList{armGccVersion};
|
||||||
QTest::newRow("stm32f769i") << armgcc_stm32f769i_freertos_json << armGccToolchainFilePath
|
QTest::newRow("stm32f769i") << armgcc_stm32f769i_freertos_json << armGccToolchainFilePath
|
||||||
<< armGccDir << armGccDirectorySetting;
|
<< armGccDir << armGccDirectorySetting
|
||||||
|
<< QStringList{armGccVersion, armGccNewVersion};
|
||||||
QTest::newRow("stm32f469i") << iar_stm32f469i_metal_json << iarToolchainFilePath << iarDir
|
QTest::newRow("stm32f469i") << iar_stm32f469i_metal_json << iarToolchainFilePath << iarDir
|
||||||
<< iarSetting;
|
<< iarSetting << iarVersions;
|
||||||
QTest::newRow("nxp1064") << iar_nxp_1064_json << iarToolchainFilePath << iarDir << iarSetting;
|
QTest::newRow("nxp1064") << iar_nxp_1064_json << iarToolchainFilePath << iarDir << iarSetting
|
||||||
QTest::newRow("nxp1064") << iar_nxp_1064_json << iarToolchainFilePath << iarDir << iarSetting;
|
<< iarVersions;
|
||||||
|
QTest::newRow("nxp1064") << iar_nxp_1064_json << iarToolchainFilePath << iarDir << iarSetting
|
||||||
|
<< iarVersions;
|
||||||
QTest::newRow("ghs_rh850_d1m1a_baremetal_json")
|
QTest::newRow("ghs_rh850_d1m1a_baremetal_json")
|
||||||
<< ghs_rh850_d1m1a_baremetal_json << greenhillToolchainFilePath << greenhillCompilerDir
|
<< ghs_rh850_d1m1a_baremetal_json << greenhillToolchainFilePath << greenhillCompilerDir
|
||||||
<< greenhillSetting;
|
<< greenhillSetting << greenhillVersions;
|
||||||
}
|
}
|
||||||
|
|
||||||
void McuSupportTest::test_legacy_createTargetWithToolchainPackages()
|
void McuSupportTest::test_legacy_createTargetWithToolchainPackages()
|
||||||
@@ -735,6 +757,7 @@ void McuSupportTest::test_legacy_createTargetWithToolchainPackages()
|
|||||||
QFETCH(QString, toolchainFilePath);
|
QFETCH(QString, toolchainFilePath);
|
||||||
QFETCH(QString, compilerPath);
|
QFETCH(QString, compilerPath);
|
||||||
QFETCH(QString, compilerSetting);
|
QFETCH(QString, compilerSetting);
|
||||||
|
QFETCH(QStringList, versions);
|
||||||
|
|
||||||
const Sdk::McuTargetDescription description = Sdk::parseDescriptionJson(json.toLocal8Bit());
|
const Sdk::McuTargetDescription description = Sdk::parseDescriptionJson(json.toLocal8Bit());
|
||||||
|
|
||||||
@@ -748,7 +771,7 @@ void McuSupportTest::test_legacy_createTargetWithToolchainPackages()
|
|||||||
Sdk::targetsFromDescriptions({description}, settingsMockPtr, qtForMcuSdkPath, runLegacy)};
|
Sdk::targetsFromDescriptions({description}, settingsMockPtr, qtForMcuSdkPath, runLegacy)};
|
||||||
Q_UNUSED(packages);
|
Q_UNUSED(packages);
|
||||||
|
|
||||||
verifyTargetToolchains(targets, toolchainFilePath, compilerPath, compilerSetting);
|
verifyTargetToolchains(targets, toolchainFilePath, compilerPath, compilerSetting, versions);
|
||||||
}
|
}
|
||||||
|
|
||||||
void McuSupportTest::test_createTargetWithToolchainPackages_data()
|
void McuSupportTest::test_createTargetWithToolchainPackages_data()
|
||||||
@@ -762,6 +785,10 @@ void McuSupportTest::test_createTargetWithToolchainPackages()
|
|||||||
QFETCH(QString, toolchainFilePath);
|
QFETCH(QString, toolchainFilePath);
|
||||||
QFETCH(QString, compilerPath);
|
QFETCH(QString, compilerPath);
|
||||||
QFETCH(QString, compilerSetting);
|
QFETCH(QString, compilerSetting);
|
||||||
|
QFETCH(QStringList, versions);
|
||||||
|
|
||||||
|
EXPECT_CALL(*settingsMockPtr, getPath(compilerSetting, _, _))
|
||||||
|
.WillRepeatedly(Return(FilePath::fromString(compilerPath)));
|
||||||
|
|
||||||
EXPECT_CALL(*settingsMockPtr, getPath(compilerSetting, _, _))
|
EXPECT_CALL(*settingsMockPtr, getPath(compilerSetting, _, _))
|
||||||
.WillRepeatedly(Return(FilePath::fromString(compilerPath)));
|
.WillRepeatedly(Return(FilePath::fromString(compilerPath)));
|
||||||
@@ -771,7 +798,7 @@ void McuSupportTest::test_createTargetWithToolchainPackages()
|
|||||||
Sdk::targetsFromDescriptions({description}, settingsMockPtr, qtForMcuSdkPath, !runLegacy)};
|
Sdk::targetsFromDescriptions({description}, settingsMockPtr, qtForMcuSdkPath, !runLegacy)};
|
||||||
Q_UNUSED(packages);
|
Q_UNUSED(packages);
|
||||||
|
|
||||||
verifyTargetToolchains(targets, toolchainFilePath, compilerPath, compilerSetting);
|
verifyTargetToolchains(targets, toolchainFilePath, compilerPath, compilerSetting, versions);
|
||||||
}
|
}
|
||||||
|
|
||||||
void McuSupportTest::test_addToolchainFileInfoToKit()
|
void McuSupportTest::test_addToolchainFileInfoToKit()
|
||||||
|
|||||||
Reference in New Issue
Block a user