forked from qt-creator/qt-creator
Make (and return) more properties as const-ref in McuPackage
This implies that those properties are now passed into the constructor, and their setters are removed. Change-Id: I34b4d9d7450897e6a7a72b8edaffdc05961546d1 Reviewed-by: Alessandro Portale <alessandro.portale@qt.io> Reviewed-by: <piotr.mucko@qt.io>
This commit is contained in:
committed by
piotr.mucko
parent
6b6b35f59e
commit
32f8ed7b66
@@ -52,12 +52,15 @@ static bool automaticKitCreationFromSettings(QSettings::Scope scope = QSettings:
|
||||
|
||||
McuPackage::McuPackage(const QString &label, const FilePath &defaultPath,
|
||||
const QString &detectionPath, const QString &settingsKey,
|
||||
const QString &envVarName, const QString &downloadUrl,
|
||||
const McuPackageVersionDetector *versionDetector)
|
||||
: m_label(label)
|
||||
, m_defaultPath(Sdk::packagePathFromSettings(settingsKey, QSettings::SystemScope, defaultPath))
|
||||
, m_detectionPath(detectionPath)
|
||||
, m_settingsKey(settingsKey)
|
||||
, m_versionDetector(versionDetector)
|
||||
, m_environmentVariableName(envVarName)
|
||||
, m_downloadUrl(downloadUrl)
|
||||
{
|
||||
m_path = Sdk::packagePathFromSettings(settingsKey, QSettings::UserScope, m_defaultPath);
|
||||
m_automaticKitCreation = automaticKitCreationFromSettings(QSettings::UserScope);
|
||||
@@ -144,17 +147,7 @@ bool McuPackage::validStatus() const
|
||||
return m_status == McuPackage::ValidPackage || m_status == McuPackage::ValidPackageMismatchedVersion;
|
||||
}
|
||||
|
||||
void McuPackage::setDownloadUrl(const QString &url)
|
||||
{
|
||||
m_downloadUrl = url;
|
||||
}
|
||||
|
||||
void McuPackage::setEnvironmentVariableName(const QString &name)
|
||||
{
|
||||
m_environmentVariableName = name;
|
||||
}
|
||||
|
||||
QString McuPackage::environmentVariableName() const
|
||||
const QString &McuPackage::environmentVariableName() const
|
||||
{
|
||||
return m_environmentVariableName;
|
||||
}
|
||||
@@ -295,9 +288,9 @@ McuToolChainPackage::McuToolChainPackage(const QString &label,
|
||||
const FilePath &defaultPath,
|
||||
const QString &detectionPath,
|
||||
const QString &settingsKey,
|
||||
McuToolChainPackage::Type type,
|
||||
McuToolChainPackage::Type type, const QString &envVarName,
|
||||
const McuPackageVersionDetector *versionDetector)
|
||||
: McuPackage(label, defaultPath, detectionPath, settingsKey, versionDetector)
|
||||
: McuPackage(label, defaultPath, detectionPath, settingsKey, envVarName, {}, versionDetector)
|
||||
, m_type(type)
|
||||
{
|
||||
}
|
||||
|
@@ -61,6 +61,7 @@ public:
|
||||
|
||||
McuPackage(const QString &label, const Utils::FilePath &defaultPath,
|
||||
const QString &detectionPath, const QString &settingsKey,
|
||||
const QString &envVarName = {}, const QString &downloadUrl = {},
|
||||
const McuPackageVersionDetector *versionDetector = nullptr);
|
||||
virtual ~McuPackage() = default;
|
||||
|
||||
@@ -74,8 +75,6 @@ public:
|
||||
|
||||
Status status() const;
|
||||
bool validStatus() const;
|
||||
void setDownloadUrl(const QString &url);
|
||||
void setEnvironmentVariableName(const QString &name);
|
||||
void setAddToPath(bool addToPath);
|
||||
bool addToPath() const;
|
||||
void writeGeneralSettings() const;
|
||||
@@ -88,7 +87,7 @@ public:
|
||||
|
||||
QWidget *widget();
|
||||
|
||||
QString environmentVariableName() const;
|
||||
const QString &environmentVariableName() const;
|
||||
|
||||
signals:
|
||||
void changed();
|
||||
@@ -112,8 +111,8 @@ private:
|
||||
QString m_relativePathModifier; // relative path to m_path to be returned by path()
|
||||
QString m_detectedVersion;
|
||||
QStringList m_versions;
|
||||
QString m_downloadUrl;
|
||||
QString m_environmentVariableName;
|
||||
const QString m_environmentVariableName;
|
||||
const QString m_downloadUrl;
|
||||
bool m_addToPath = false;
|
||||
bool m_automaticKitCreation = true;
|
||||
|
||||
@@ -139,6 +138,7 @@ public:
|
||||
const QString &detectionPath,
|
||||
const QString &settingsKey,
|
||||
Type type,
|
||||
const QString &envVarName = {},
|
||||
const McuPackageVersionDetector *versionDetector = nullptr
|
||||
);
|
||||
|
||||
|
@@ -269,7 +269,7 @@ McuTarget::McuTarget(const QVersionNumber &qulVersion,
|
||||
{
|
||||
}
|
||||
|
||||
QVector<McuPackage *> McuTarget::packages() const
|
||||
const QVector<McuPackage *> &McuTarget::packages() const
|
||||
{
|
||||
return m_packages;
|
||||
}
|
||||
@@ -284,7 +284,7 @@ McuTarget::OS McuTarget::os() const
|
||||
return m_os;
|
||||
}
|
||||
|
||||
McuTarget::Platform McuTarget::platform() const
|
||||
const McuTarget::Platform &McuTarget::platform() const
|
||||
{
|
||||
return m_platform;
|
||||
}
|
||||
@@ -316,7 +316,7 @@ void McuTarget::printPackageProblems() const
|
||||
}
|
||||
}
|
||||
|
||||
QVersionNumber McuTarget::qulVersion() const
|
||||
const QVersionNumber &McuTarget::qulVersion() const
|
||||
{
|
||||
return m_qulVersion;
|
||||
}
|
||||
|
@@ -75,10 +75,10 @@ public:
|
||||
const QVector<McuPackage *> &packages,
|
||||
const McuToolChainPackage *toolChainPackage);
|
||||
|
||||
QVersionNumber qulVersion() const;
|
||||
QVector<McuPackage *> packages() const;
|
||||
const QVersionNumber &qulVersion() const;
|
||||
const QVector<McuPackage *> &packages() const;
|
||||
const McuToolChainPackage *toolChainPackage() const;
|
||||
Platform platform() const;
|
||||
const Platform &platform() const;
|
||||
OS os() const;
|
||||
void setColorDepth(int colorDepth);
|
||||
int colorDepth() const;
|
||||
|
@@ -65,13 +65,11 @@ static FilePath findInProgramFiles(const QString &folder)
|
||||
|
||||
McuPackage *createQtForMCUsPackage()
|
||||
{
|
||||
auto result = new McuPackage(
|
||||
McuPackage::tr("Qt for MCUs SDK"),
|
||||
FileUtils::homePath(),
|
||||
FilePath("bin/qmltocpp").withExecutableSuffix().toString(),
|
||||
Constants::SETTINGS_KEY_PACKAGE_QT_FOR_MCUS_SDK);
|
||||
result->setEnvironmentVariableName("Qul_DIR");
|
||||
return result;
|
||||
return new McuPackage(McuPackage::tr("Qt for MCUs SDK"),
|
||||
FileUtils::homePath(), // defaultPath
|
||||
FilePath("bin/qmltocpp").withExecutableSuffix().toString(), // detectionPath
|
||||
Constants::SETTINGS_KEY_PACKAGE_QT_FOR_MCUS_SDK, // settingsKey
|
||||
QStringLiteral("Qul_DIR")); // envVarName
|
||||
}
|
||||
|
||||
static McuToolChainPackage *createMsvcToolChainPackage()
|
||||
@@ -114,15 +112,13 @@ static McuToolChainPackage *createArmGccPackage()
|
||||
"\\b(\\d+\\.\\d+\\.\\d+)\\b"
|
||||
);
|
||||
|
||||
auto result = new McuToolChainPackage(
|
||||
McuPackage::tr("GNU Arm Embedded Toolchain"),
|
||||
defaultPath,
|
||||
detectionPath,
|
||||
"GNUArmEmbeddedToolchain",
|
||||
McuToolChainPackage::TypeArmGcc,
|
||||
versionDetector);
|
||||
result->setEnvironmentVariableName(envVar);
|
||||
return result;
|
||||
return new McuToolChainPackage(McuPackage::tr("GNU Arm Embedded Toolchain"),
|
||||
defaultPath,
|
||||
detectionPath,
|
||||
"GNUArmEmbeddedToolchain", // settingsKey
|
||||
McuToolChainPackage::TypeArmGcc,
|
||||
envVar,
|
||||
versionDetector);
|
||||
}
|
||||
|
||||
static McuToolChainPackage *createGhsToolchainPackage()
|
||||
@@ -137,15 +133,14 @@ static McuToolChainPackage *createGhsToolchainPackage()
|
||||
"\\bv(\\d+\\.\\d+\\.\\d+)\\b"
|
||||
);
|
||||
|
||||
auto result = new McuToolChainPackage(
|
||||
"Green Hills Compiler",
|
||||
defaultPath,
|
||||
Utils::HostOsInfo::withExecutableSuffix("ccv850"),
|
||||
"GHSToolchain",
|
||||
McuToolChainPackage::TypeGHS,
|
||||
versionDetector);
|
||||
result->setEnvironmentVariableName(envVar);
|
||||
return result;
|
||||
return new McuToolChainPackage("Green Hills Compiler",
|
||||
defaultPath,
|
||||
Utils::HostOsInfo::withExecutableSuffix(
|
||||
"ccv850"), // detectionPath
|
||||
"GHSToolchain", // settingsKey
|
||||
McuToolChainPackage::TypeGHS,
|
||||
envVar,
|
||||
versionDetector);
|
||||
}
|
||||
|
||||
static McuToolChainPackage *createGhsArmToolchainPackage()
|
||||
@@ -160,15 +155,13 @@ static McuToolChainPackage *createGhsArmToolchainPackage()
|
||||
"\\bv(\\d+\\.\\d+\\.\\d+)\\b"
|
||||
);
|
||||
|
||||
auto result = new McuToolChainPackage(
|
||||
"Green Hills Compiler for ARM",
|
||||
defaultPath,
|
||||
Utils::HostOsInfo::withExecutableSuffix("cxarm"),
|
||||
"GHSArmToolchain",
|
||||
McuToolChainPackage::TypeGHSArm,
|
||||
versionDetector);
|
||||
result->setEnvironmentVariableName(envVar);
|
||||
return result;
|
||||
return new McuToolChainPackage("Green Hills Compiler for ARM",
|
||||
defaultPath,
|
||||
Utils::HostOsInfo::withExecutableSuffix("cxarm"), // detectionPath
|
||||
"GHSArmToolchain", // settingsKey
|
||||
McuToolChainPackage::TypeGHSArm,
|
||||
envVar,
|
||||
versionDetector);
|
||||
}
|
||||
|
||||
static McuToolChainPackage *createIarToolChainPackage()
|
||||
@@ -196,15 +189,13 @@ static McuToolChainPackage *createIarToolChainPackage()
|
||||
"\\bV(\\d+\\.\\d+\\.\\d+)\\.\\d+\\b"
|
||||
);
|
||||
|
||||
auto result = new McuToolChainPackage(
|
||||
"IAR ARM Compiler",
|
||||
defaultPath,
|
||||
detectionPath,
|
||||
"IARToolchain",
|
||||
McuToolChainPackage::TypeIAR,
|
||||
versionDetector);
|
||||
result->setEnvironmentVariableName(envVar);
|
||||
return result;
|
||||
return new McuToolChainPackage("IAR ARM Compiler",
|
||||
defaultPath,
|
||||
detectionPath,
|
||||
"IARToolchain", // settings key
|
||||
McuToolChainPackage::TypeIAR,
|
||||
envVar,
|
||||
versionDetector);
|
||||
}
|
||||
|
||||
static McuPackage *createRGLPackage()
|
||||
@@ -225,13 +216,11 @@ static McuPackage *createRGLPackage()
|
||||
}
|
||||
}
|
||||
|
||||
auto result = new McuPackage(
|
||||
"Renesas Graphics Library",
|
||||
defaultPath,
|
||||
{},
|
||||
"RGL");
|
||||
result->setEnvironmentVariableName(envVar);
|
||||
return result;
|
||||
return new McuPackage("Renesas Graphics Library",
|
||||
defaultPath,
|
||||
{}, // detection path
|
||||
"RGL",
|
||||
envVar);
|
||||
}
|
||||
|
||||
static McuPackage *createStm32CubeProgrammerPackage()
|
||||
@@ -247,15 +236,16 @@ static McuPackage *createStm32CubeProgrammerPackage()
|
||||
if (programPath.exists())
|
||||
defaultPath = programPath;
|
||||
}
|
||||
auto result = new McuPackage(
|
||||
McuPackage::tr("STM32CubeProgrammer"),
|
||||
defaultPath,
|
||||
QLatin1String(Utils::HostOsInfo::isWindowsHost() ? "/bin/STM32_Programmer_CLI.exe"
|
||||
: "/bin/STM32_Programmer.sh"),
|
||||
"Stm32CubeProgrammer");
|
||||
auto result
|
||||
= new McuPackage(McuPackage::tr("STM32CubeProgrammer"),
|
||||
defaultPath,
|
||||
QLatin1String(Utils::HostOsInfo::isWindowsHost()
|
||||
? "/bin/STM32_Programmer_CLI.exe"
|
||||
: "/bin/STM32_Programmer.sh"), // detection path
|
||||
"Stm32CubeProgrammer",
|
||||
{}, // env var
|
||||
"https://www.st.com/en/development-tools/stm32cubeprog.html"); // download url
|
||||
result->setRelativePathModifier("/bin");
|
||||
result->setDownloadUrl(
|
||||
"https://www.st.com/en/development-tools/stm32cubeprog.html");
|
||||
result->setAddToPath(true);
|
||||
return result;
|
||||
}
|
||||
@@ -283,14 +273,13 @@ static McuPackage *createMcuXpressoIdePackage()
|
||||
defaultPath = programPath;
|
||||
}
|
||||
|
||||
auto result = new McuPackage(
|
||||
"MCUXpresso IDE",
|
||||
defaultPath,
|
||||
Utils::HostOsInfo::withExecutableSuffix("ide/binaries/crt_emu_cm_redlink"),
|
||||
"MCUXpressoIDE");
|
||||
result->setDownloadUrl("https://www.nxp.com/mcuxpresso/ide");
|
||||
result->setEnvironmentVariableName(envVar);
|
||||
return result;
|
||||
return new McuPackage("MCUXpresso IDE",
|
||||
defaultPath,
|
||||
Utils::HostOsInfo::withExecutableSuffix(
|
||||
"ide/binaries/crt_emu_cm_redlink"), // detection path
|
||||
"MCUXpressoIDE", // settings key
|
||||
envVar,
|
||||
"https://www.nxp.com/mcuxpresso/ide"); // download url
|
||||
}
|
||||
|
||||
static McuPackage *createCypressProgrammerPackage()
|
||||
@@ -315,8 +304,8 @@ static McuPackage *createCypressProgrammerPackage()
|
||||
"Cypress Auto Flash Utility",
|
||||
defaultPath,
|
||||
Utils::HostOsInfo::withExecutableSuffix("/bin/openocd"),
|
||||
"CypressAutoFlashUtil");
|
||||
result->setEnvironmentVariableName(envVar);
|
||||
"CypressAutoFlashUtil",
|
||||
envVar);
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -342,8 +331,8 @@ static McuPackage *createRenesasProgrammerPackage()
|
||||
"Renesas Flash Programmer",
|
||||
defaultPath,
|
||||
Utils::HostOsInfo::withExecutableSuffix("rfp-cli"),
|
||||
"RenesasFlashProgrammer");
|
||||
result->setEnvironmentVariableName(envVar);
|
||||
"RenesasFlashProgrammer",
|
||||
envVar);
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -422,14 +411,13 @@ static McuPackage *createBoardSdkPackage(const McuTargetDescription& desc)
|
||||
|
||||
const auto versionDetector = generatePackageVersionDetector(desc.boardSdk.envVar);
|
||||
|
||||
auto result = new McuPackage(
|
||||
sdkName,
|
||||
defaultPath,
|
||||
{},
|
||||
desc.boardSdk.envVar,
|
||||
versionDetector);
|
||||
result->setEnvironmentVariableName(desc.boardSdk.envVar);
|
||||
return result;
|
||||
return new McuPackage(sdkName,
|
||||
defaultPath,
|
||||
{}, // detection path
|
||||
desc.boardSdk.envVar, // settings key
|
||||
desc.boardSdk.envVar, // env var
|
||||
{}, // download URL
|
||||
versionDetector);
|
||||
}
|
||||
|
||||
static McuPackage *createFreeRTOSSourcesPackage(const QString &envVar, const FilePath &boardSdkDir,
|
||||
@@ -443,14 +431,12 @@ static McuPackage *createFreeRTOSSourcesPackage(const QString &envVar, const Fil
|
||||
else if (!boardSdkDir.isEmpty() && !freeRTOSBoardSdkSubDir.isEmpty())
|
||||
defaultPath = boardSdkDir / freeRTOSBoardSdkSubDir;
|
||||
|
||||
auto result = new McuPackage(
|
||||
QString::fromLatin1("FreeRTOS Sources (%1)").arg(envVarPrefix),
|
||||
defaultPath,
|
||||
{},
|
||||
QString::fromLatin1("FreeRTOSSourcePackage_%1").arg(envVarPrefix));
|
||||
result->setDownloadUrl("https://freertos.org");
|
||||
result->setEnvironmentVariableName(envVar);
|
||||
return result;
|
||||
return new McuPackage(QString::fromLatin1("FreeRTOS Sources (%1)").arg(envVarPrefix),
|
||||
defaultPath,
|
||||
{},
|
||||
QString::fromLatin1("FreeRTOSSourcePackage_%1").arg(envVarPrefix),
|
||||
envVar,
|
||||
"https://freertos.org");
|
||||
}
|
||||
|
||||
struct McuTargetFactory
|
||||
|
Reference in New Issue
Block a user