From c79d4bd60623c6a2b3e6e2afa2b457654166a650 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Wed, 24 Aug 2022 14:57:06 +0200 Subject: [PATCH] MCU: Use qtcEnvironmentVariable* instead of qEnvironmentVariable* MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit And instead of qgetenv. Takes Qt Creator's setting at "Environment > System > Environment" into account, which makes it easier on some platforms to set them (e.g. macOS), can be configured differently in different settings paths, and potentially can be changed at runtime (depending on usage). Change-Id: Ib644dd6178bf9e0a1a75a2c6cf49fd5f3d121cf4 Reviewed-by: Reviewed-by: Piotr Mućko Reviewed-by: Alessandro Portale --- src/plugins/mcusupport/mcupackage.cpp | 4 +-- src/plugins/mcusupport/mcusupportsdk.cpp | 41 ++++++++++++------------ src/plugins/mcusupport/test/unittest.cpp | 3 +- 3 files changed, 25 insertions(+), 23 deletions(-) diff --git a/src/plugins/mcusupport/mcupackage.cpp b/src/plugins/mcusupport/mcupackage.cpp index 5e0e870ddbd..2f299b48b4e 100644 --- a/src/plugins/mcusupport/mcupackage.cpp +++ b/src/plugins/mcusupport/mcupackage.cpp @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include @@ -53,8 +54,7 @@ McuPackage::McuPackage(const SettingsHandler::Ptr &settingsHandler, , m_downloadUrl(downloadUrl) , m_addToSystemPath(addToSystemPath) { - m_path = FilePath::fromUserInput( - qEnvironmentVariable(m_environmentVariableName.toStdString().c_str())); + m_path = FilePath::fromUserInput(qtcEnvironmentVariable(m_environmentVariableName)); if (!m_path.exists()) { m_path = this->settingsHandler->getPath(settingsKey, QSettings::UserScope, m_defaultPath); } diff --git a/src/plugins/mcusupport/mcusupportsdk.cpp b/src/plugins/mcusupport/mcusupportsdk.cpp index 0e5dc1d42b3..9b01ceefe57 100644 --- a/src/plugins/mcusupport/mcusupportsdk.cpp +++ b/src/plugins/mcusupport/mcusupportsdk.cpp @@ -21,6 +21,7 @@ #include #include #include +#include #include #include @@ -60,10 +61,10 @@ namespace Legacy { static FilePath findInProgramFiles(const QString &folder) { - for (auto envVar : {"ProgramFiles", "ProgramFiles(x86)", "ProgramW6432"}) { - if (!qEnvironmentVariableIsSet(envVar)) + for (const auto &envVar : QStringList{"ProgramFiles", "ProgramFiles(x86)", "ProgramW6432"}) { + if (!qtcEnvironmentVariableIsSet(envVar)) continue; - const FilePath dir = FilePath::fromUserInput(qEnvironmentVariable(envVar)) / folder; + const FilePath dir = FilePath::fromUserInput(qtcEnvironmentVariable(envVar)) / folder; if (dir.exists()) return dir; } @@ -101,9 +102,9 @@ McuPackagePtr createBoardSdkPackage(const SettingsHandler::Ptr &settingsHandler, const QString sdkName = generateSdkName(desc.boardSdk.envVar); const FilePath defaultPath = [&] { - const auto envVar = desc.boardSdk.envVar.toLatin1(); - if (qEnvironmentVariableIsSet(envVar)) - return FilePath::fromUserInput(qEnvironmentVariable(envVar)); + const auto envVar = desc.boardSdk.envVar; + if (qtcEnvironmentVariableIsSet(envVar)) + return FilePath::fromUserInput(qtcEnvironmentVariable(envVar)); if (!desc.boardSdk.defaultPath.isEmpty()) { FilePath defaultPath = FilePath::fromUserInput(QDir::rootPath() + desc.boardSdk.defaultPath.toString()); @@ -134,8 +135,8 @@ McuPackagePtr createFreeRTOSSourcesPackage(const SettingsHandler::Ptr &settingsH const QString envVarPrefix = removeRtosSuffix(envVar); FilePath defaultPath; - if (qEnvironmentVariableIsSet(envVar.toLatin1())) - defaultPath = FilePath::fromUserInput(qEnvironmentVariable(envVar.toLatin1())); + if (qtcEnvironmentVariableIsSet(envVar)) + defaultPath = FilePath::fromUserInput(qtcEnvironmentVariable(envVar)); else if (!boardSdkDir.isEmpty()) defaultPath = boardSdkDir; @@ -239,8 +240,8 @@ McuToolChainPackagePtr createArmGccToolchainPackage(const SettingsHandler::Ptr & const char envVar[] = "ARMGCC_DIR"; FilePath defaultPath; - if (qEnvironmentVariableIsSet(envVar)) - defaultPath = FilePath::fromUserInput(qEnvironmentVariable(envVar)); + if (qtcEnvironmentVariableIsSet(envVar)) + defaultPath = FilePath::fromUserInput(qtcEnvironmentVariable(envVar)); if (defaultPath.isEmpty() && HostOsInfo::isWindowsHost()) { const FilePath installDir = findInProgramFiles("GNU Tools ARM Embedded"); if (installDir.exists()) { @@ -275,7 +276,7 @@ McuToolChainPackagePtr createGhsToolchainPackage(const SettingsHandler::Ptr &set { const char envVar[] = "GHS_COMPILER_DIR"; - const FilePath defaultPath = FilePath::fromUserInput(qEnvironmentVariable(envVar)); + const FilePath defaultPath = FilePath::fromUserInput(qtcEnvironmentVariable(envVar)); const auto versionDetector = new McuPackageExecutableVersionDetector(FilePath("as850").withExecutableSuffix(), @@ -300,7 +301,7 @@ McuToolChainPackagePtr createGhsArmToolchainPackage(const SettingsHandler::Ptr & { const char envVar[] = "GHS_ARM_COMPILER_DIR"; - const FilePath defaultPath = FilePath::fromUserInput(qEnvironmentVariable(envVar)); + const FilePath defaultPath = FilePath::fromUserInput(qtcEnvironmentVariable(envVar)); const auto versionDetector = new McuPackageExecutableVersionDetector(FilePath("asarm").withExecutableSuffix(), @@ -326,8 +327,8 @@ McuToolChainPackagePtr createIarToolChainPackage(const SettingsHandler::Ptr &set const char envVar[] = "IAR_ARM_COMPILER_DIR"; FilePath defaultPath; - if (qEnvironmentVariableIsSet(envVar)) - defaultPath = FilePath::fromUserInput(qEnvironmentVariable(envVar)); + if (qtcEnvironmentVariableIsSet(envVar)) + defaultPath = FilePath::fromUserInput(qtcEnvironmentVariable(envVar)); else { const ProjectExplorer::ToolChain *tc = ProjectExplorer::ToolChainManager::toolChain( [](const ProjectExplorer::ToolChain *t) { @@ -397,8 +398,8 @@ McuPackagePtr createMcuXpressoIdePackage(const SettingsHandler::Ptr &settingsHan const char envVar[] = "MCUXpressoIDE_PATH"; FilePath defaultPath; - if (qEnvironmentVariableIsSet(envVar)) { - defaultPath = FilePath::fromUserInput(qEnvironmentVariable(envVar)); + if (qtcEnvironmentVariableIsSet(envVar)) { + defaultPath = FilePath::fromUserInput(qtcEnvironmentVariable(envVar)); } else if (HostOsInfo::isWindowsHost()) { const FilePath programPath = FilePath::fromString(QDir::rootPath()) / "nxp"; if (programPath.exists()) { @@ -432,8 +433,8 @@ McuPackagePtr createCypressProgrammerPackage(const SettingsHandler::Ptr &setting const char envVar[] = "CYPRESS_AUTO_FLASH_UTILITY_DIR"; FilePath defaultPath; - if (qEnvironmentVariableIsSet(envVar)) { - defaultPath = FilePath::fromUserInput(qEnvironmentVariable(envVar)); + if (qtcEnvironmentVariableIsSet(envVar)) { + defaultPath = FilePath::fromUserInput(qtcEnvironmentVariable(envVar)); } else if (HostOsInfo::isWindowsHost()) { const FilePath candidate = findInProgramFiles("Cypress"); if (candidate.exists()) { @@ -460,8 +461,8 @@ McuPackagePtr createRenesasProgrammerPackage(const SettingsHandler::Ptr &setting const char envVar[] = "RENESAS_FLASH_PROGRAMMER_PATH"; FilePath defaultPath; - if (qEnvironmentVariableIsSet(envVar)) { - defaultPath = FilePath::fromUserInput(qEnvironmentVariable(envVar)); + if (qtcEnvironmentVariableIsSet(envVar)) { + defaultPath = FilePath::fromUserInput(qtcEnvironmentVariable(envVar)); } else if (HostOsInfo::isWindowsHost()) { const FilePath candidate = findInProgramFiles("Renesas Electronics/Programming Tools"); if (candidate.exists()) { diff --git a/src/plugins/mcusupport/test/unittest.cpp b/src/plugins/mcusupport/test/unittest.cpp index c42bef3c380..7c58576946c 100644 --- a/src/plugins/mcusupport/test/unittest.cpp +++ b/src/plugins/mcusupport/test/unittest.cpp @@ -38,6 +38,7 @@ #include #include +#include #include #include @@ -1226,7 +1227,7 @@ void McuSupportTest::test_passDirectoryVersionDetectorToRenesasBoardSdkPackage() void McuSupportTest::test_resolveEnvironmentVariablesInDefaultPath() { QVERIFY(qputenv(QUL_ENV_VAR, qtForMcuSdkPath)); - QCOMPARE(qEnvironmentVariable(QUL_ENV_VAR), qtForMcuSdkPath); + QCOMPARE(qtcEnvironmentVariable(QUL_ENV_VAR), qtForMcuSdkPath); const QString qulEnvVariable = QString("%{Env:") + QUL_ENV_VAR + "}"; toochainFileDescription.defaultPath = FilePath::fromUserInput(