forked from qt-creator/qt-creator
MCU: Use qtcEnvironmentVariable* instead of qEnvironmentVariable*
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: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Piotr Mućko <piotr.mucko@qt.io> Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
@@ -15,6 +15,7 @@
|
||||
#include <projectexplorer/toolchain.h>
|
||||
#include <projectexplorer/toolchainmanager.h>
|
||||
#include <utils/algorithm.h>
|
||||
#include <utils/environment.h>
|
||||
#include <utils/infolabel.h>
|
||||
#include <utils/pathchooser.h>
|
||||
#include <utils/utilsicons.h>
|
||||
@@ -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);
|
||||
}
|
||||
|
@@ -21,6 +21,7 @@
|
||||
#include <projectexplorer/toolchain.h>
|
||||
#include <projectexplorer/toolchainmanager.h>
|
||||
#include <utils/algorithm.h>
|
||||
#include <utils/environment.h>
|
||||
#include <utils/fileutils.h>
|
||||
#include <utils/hostosinfo.h>
|
||||
|
||||
@@ -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()) {
|
||||
|
@@ -38,6 +38,7 @@
|
||||
#include <projectexplorer/toolchainmanager.h>
|
||||
|
||||
#include <utils/algorithm.h>
|
||||
#include <utils/environment.h>
|
||||
#include <utils/filepath.h>
|
||||
|
||||
#include <QJsonArray>
|
||||
@@ -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(
|
||||
|
Reference in New Issue
Block a user