Qnx: Use more FilePath for paths

Change-Id: I36f00548247cd34bbb52b452bc80978f131e5270
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
This commit is contained in:
hjk
2021-09-27 14:25:26 +02:00
parent 7df00776d1
commit be4cfd9d07
9 changed files with 60 additions and 63 deletions

View File

@@ -33,30 +33,28 @@
#include <QDir>
#include <QHBoxLayout>
using namespace Utils;
namespace Qnx {
namespace Internal {
QnxBaseQtConfigWidget::QnxBaseQtConfigWidget(QnxQtVersion *version) :
m_version(version),
m_sdpPathChooser(new Utils::PathChooser)
m_sdpPathChooser(new PathChooser)
{
QTC_ASSERT(version, return);
auto layout = new QHBoxLayout(this);
layout->addWidget(m_sdpPathChooser);
m_sdpPathChooser->setExpectedKind(Utils::PathChooser::ExistingDirectory);
m_sdpPathChooser->setHistoryCompleter(QLatin1String("Qnx.Sdp.History"));
m_sdpPathChooser->setPath(version->sdpPath());
m_sdpPathChooser->setExpectedKind(PathChooser::ExistingDirectory);
m_sdpPathChooser->setHistoryCompleter("Qnx.Sdp.History");
m_sdpPathChooser->setFilePath(version->sdpPath());
connect(m_sdpPathChooser, &Utils::PathChooser::rawPathChanged,
this, &QnxBaseQtConfigWidget::updateSdpPath);
}
void QnxBaseQtConfigWidget::updateSdpPath(const QString &path)
{
m_version->setSdpPath(path);
connect(m_sdpPathChooser, &PathChooser::rawPathChanged, [this] {
m_version->setSdpPath(m_sdpPathChooser->filePath());
emit changed();
});
}
} // namespace Internal

View File

@@ -27,7 +27,10 @@
#include <qtsupport/qtconfigwidget.h>
namespace Utils { class PathChooser; }
namespace Utils {
class PathChooser;
class FilePath;
} // Utils
namespace Qnx {
namespace Internal {
@@ -41,9 +44,6 @@ class QnxBaseQtConfigWidget : public QtSupport::QtConfigWidget
public:
explicit QnxBaseQtConfigWidget(QnxQtVersion *version);
private slots:
void updateSdpPath(const QString &path);
private:
QnxQtVersion *m_version;
Utils::PathChooser *m_sdpPathChooser;

View File

@@ -225,7 +225,7 @@ QnxQtVersion *QnxConfiguration::qnxQtVersion(const Target &target) const
QtVersionManager::instance()->versions(Utils::equal(&BaseQtVersion::type,
QString::fromLatin1(Constants::QNX_QNX_QT)))) {
auto qnxQt = dynamic_cast<QnxQtVersion *>(version);
if (qnxQt && FilePath::fromString(qnxQt->sdpPath()) == sdpPath()) {
if (qnxQt && qnxQt->sdpPath() == sdpPath()) {
foreach (const Abi &qtAbi, version->qtAbis()) {
if ((qtAbi == target.m_abi) && (qnxQt->cpuDir() == target.cpuDir()))
return qnxQt;
@@ -240,7 +240,7 @@ QList<ToolChain *> QnxConfiguration::autoDetect(const QList<ToolChain *> &alread
{
QList<ToolChain *> result;
foreach (const Target &target, m_targets)
for (const Target &target : qAsConst(m_targets))
result += findToolChain(alreadyKnown, target.m_abi);
return result;
@@ -286,7 +286,7 @@ QnxConfiguration::QnxToolChainMap QnxConfiguration::createToolChain(const Target
"QCC for %1 (%2)")
.arg(displayName())
.arg(target.shortDescription()));
toolChain->setSdpPath(sdpPath().toString());
toolChain->setSdpPath(sdpPath());
toolChain->setCpuDir(target.cpuDir());
toolChain->resetToolChain(qccCompilerPath());
ToolChainManager::registerToolChain(toolChain);
@@ -372,11 +372,11 @@ void QnxConfiguration::setVersion(const QnxVersionNumber &version)
void QnxConfiguration::readInformation()
{
const QString qConfigPath = m_qnxConfiguration.pathAppended("qconfig").toString();
QList <ConfigInstallInformation> installInfoList = QnxUtils::installedConfigs(qConfigPath);
const QList <ConfigInstallInformation> installInfoList = QnxUtils::installedConfigs(qConfigPath);
if (installInfoList.isEmpty())
return;
foreach (const ConfigInstallInformation &info, installInfoList) {
for (const ConfigInstallInformation &info : installInfoList) {
if (m_qnxHost == FilePath::fromString(info.host).canonicalPath()
&& m_qnxTarget == FilePath::fromString(info.target).canonicalPath()) {
m_configName = info.name;
@@ -386,11 +386,11 @@ void QnxConfiguration::readInformation()
}
}
void QnxConfiguration::setDefaultConfiguration(const Utils::FilePath &envScript)
void QnxConfiguration::setDefaultConfiguration(const FilePath &envScript)
{
QTC_ASSERT(!envScript.isEmpty(), return);
m_envFile = envScript;
m_qnxEnv = QnxUtils::qnxEnvironmentFromEnvFile(m_envFile.toString());
m_qnxEnv = QnxUtils::qnxEnvironmentFromEnvFile(m_envFile);
foreach (const EnvironmentItem &item, m_qnxEnv) {
if (item.name == QNXConfiguration)
m_qnxConfiguration = FilePath::fromString(item.value).canonicalPath();

View File

@@ -109,14 +109,14 @@ QString QnxQtVersion::cpuDir() const
QVariantMap QnxQtVersion::toMap() const
{
QVariantMap result = BaseQtVersion::toMap();
result.insert(QLatin1String(SDP_PATH_KEY), sdpPath());
result.insert(SDP_PATH_KEY, sdpPath().toVariant());
return result;
}
void QnxQtVersion::fromMap(const QVariantMap &map)
{
BaseQtVersion::fromMap(map);
setSdpPath(QDir::fromNativeSeparators(map.value(QLatin1String(SDP_PATH_KEY)).toString()));
setSdpPath(FilePath::fromVariant(map.value(SDP_PATH_KEY)));
}
Abis QnxQtVersion::detectQtAbis() const
@@ -134,7 +134,7 @@ void QnxQtVersion::addToEnvironment(const Kit *k, Environment &env) const
env.prependOrSetLibrarySearchPath(libraryPath().toString());
}
void QnxQtVersion::setupQmakeRunEnvironment(Utils::Environment &env) const
void QnxQtVersion::setupQmakeRunEnvironment(Environment &env) const
{
if (!sdpPath().isEmpty())
updateEnvironment();
@@ -160,12 +160,12 @@ QString QnxQtVersion::invalidReason() const
return QtSupport::BaseQtVersion::invalidReason();
}
QString QnxQtVersion::sdpPath() const
FilePath QnxQtVersion::sdpPath() const
{
return m_sdpPath;
}
void QnxQtVersion::setSdpPath(const QString &sdpPath)
void QnxQtVersion::setSdpPath(const FilePath &sdpPath)
{
if (m_sdpPath == sdpPath)
return;

View File

@@ -63,15 +63,15 @@ public:
bool isValid() const override;
QString invalidReason() const override;
QString sdpPath() const;
void setSdpPath(const QString &sdpPath);
Utils::FilePath sdpPath() const;
void setSdpPath(const Utils::FilePath &sdpPath);
private:
void updateEnvironment() const;
Utils::EnvironmentItems environment() const;
QString m_sdpPath;
Utils::FilePath m_sdpPath;
mutable QString m_cpuDir;
mutable bool m_environmentUpToDate = false;

View File

@@ -41,8 +41,8 @@ using namespace Utils;
namespace Qnx {
namespace Internal {
static const char CompilerSdpPath[] = "Qnx.QnxToolChain.NDKPath";
static const char CpuDirKey[] = "Qnx.QnxToolChain.CpuDir";
const char CompilerSdpPath[] = "Qnx.QnxToolChain.NDKPath";
const char CpuDirKey[] = "Qnx.QnxToolChain.CpuDir";
static Abis detectTargetAbis(const FilePath &sdpPath)
{
@@ -50,8 +50,8 @@ static Abis detectTargetAbis(const FilePath &sdpPath)
FilePath qnxTarget;
if (!sdpPath.fileName().isEmpty()) {
Utils::EnvironmentItems environment = QnxUtils::qnxEnvironment(sdpPath.toString());
foreach (const Utils::EnvironmentItem &item, environment) {
const EnvironmentItems environment = QnxUtils::qnxEnvironment(sdpPath);
for (const EnvironmentItem &item : environment) {
if (item.name == QLatin1String("QNX_TARGET"))
qnxTarget = FilePath::fromString(item.value);
}
@@ -137,7 +137,7 @@ QStringList QnxToolChain::suggestedMkspecList() const
QVariantMap QnxToolChain::toMap() const
{
QVariantMap data = GccToolChain::toMap();
data.insert(QLatin1String(CompilerSdpPath), m_sdpPath);
data.insert(QLatin1String(CompilerSdpPath), m_sdpPath.toVariant());
data.insert(QLatin1String(CpuDirKey), m_cpuDir);
return data;
}
@@ -147,7 +147,7 @@ bool QnxToolChain::fromMap(const QVariantMap &data)
if (!GccToolChain::fromMap(data))
return false;
m_sdpPath = data.value(QLatin1String(CompilerSdpPath)).toString();
m_sdpPath = FilePath::fromVariant(data.value(CompilerSdpPath));
m_cpuDir = data.value(QLatin1String(CpuDirKey)).toString();
// Make the ABIs QNX specific (if they aren't already).
@@ -157,12 +157,12 @@ bool QnxToolChain::fromMap(const QVariantMap &data)
return true;
}
QString QnxToolChain::sdpPath() const
FilePath QnxToolChain::sdpPath() const
{
return m_sdpPath;
}
void QnxToolChain::setSdpPath(const QString &sdpPath)
void QnxToolChain::setSdpPath(const FilePath &sdpPath)
{
if (m_sdpPath == sdpPath)
return;
@@ -185,7 +185,7 @@ void QnxToolChain::setCpuDir(const QString &cpuDir)
GccToolChain::DetectedAbisResult QnxToolChain::detectSupportedAbis() const
{
return detectTargetAbis(FilePath::fromString(m_sdpPath));
return detectTargetAbis(m_sdpPath);
}
bool QnxToolChain::operator ==(const ToolChain &other) const
@@ -243,7 +243,7 @@ QnxToolChainConfigWidget::QnxToolChainConfigWidget(QnxToolChain *tc)
m_sdpPath->setExpectedKind(PathChooser::ExistingDirectory);
m_sdpPath->setHistoryCompleter(QLatin1String("Qnx.Sdp.History"));
m_sdpPath->setPath(tc->sdpPath());
m_sdpPath->setFilePath(tc->sdpPath());
m_sdpPath->setEnabled(!tc->isAutoDetected());
const Abis abiList = detectTargetAbis(m_sdpPath->filePath());
@@ -270,7 +270,7 @@ void QnxToolChainConfigWidget::applyImpl()
Q_ASSERT(tc);
QString displayName = tc->displayName();
tc->setDisplayName(displayName); // reset display name
tc->setSdpPath(m_sdpPath->filePath().toString());
tc->setSdpPath(m_sdpPath->filePath());
tc->setTargetAbi(m_abiWidget->currentAbi());
tc->resetToolChain(m_compilerCommand->filePath());
}
@@ -281,7 +281,7 @@ void QnxToolChainConfigWidget::discardImpl()
QSignalBlocker blocker(this);
auto tc = static_cast<const QnxToolChain *>(toolChain());
m_compilerCommand->setFilePath(tc->compilerCommand());
m_sdpPath->setPath(tc->sdpPath());
m_sdpPath->setFilePath(tc->sdpPath());
m_abiWidget->setAbis(tc->supportedAbis(), tc->targetAbi());
if (!m_compilerCommand->filePath().toString().isEmpty())
m_abiWidget->setEnabled(true);
@@ -292,7 +292,7 @@ bool QnxToolChainConfigWidget::isDirtyImpl() const
auto tc = static_cast<const QnxToolChain *>(toolChain());
Q_ASSERT(tc);
return m_compilerCommand->filePath() != tc->compilerCommand()
|| m_sdpPath->filePath().toString() != tc->sdpPath()
|| m_sdpPath->filePath() != tc->sdpPath()
|| m_abiWidget->currentAbi() != tc->targetAbi();
}

View File

@@ -46,8 +46,8 @@ public:
QVariantMap toMap() const override;
bool fromMap(const QVariantMap &data) override;
QString sdpPath() const;
void setSdpPath(const QString &sdpPath);
Utils::FilePath sdpPath() const;
void setSdpPath(const Utils::FilePath &sdpPath);
QString cpuDir() const;
void setCpuDir(const QString &cpuDir);
@@ -57,7 +57,7 @@ protected:
DetectedAbisResult detectSupportedAbis() const override;
private:
QString m_sdpPath;
Utils::FilePath m_sdpPath;
QString m_cpuDir;
};

View File

@@ -78,11 +78,11 @@ QString QnxUtils::cpuDirShortDescription(const QString &cpuDir)
return cpuDir;
}
EnvironmentItems QnxUtils::qnxEnvironmentFromEnvFile(const QString &fileName)
EnvironmentItems QnxUtils::qnxEnvironmentFromEnvFile(const FilePath &filePath)
{
EnvironmentItems items;
if (!QFileInfo::exists(fileName))
if (!filePath.exists())
return items;
const bool isWindows = HostOsInfo::isWindowsHost();
@@ -97,10 +97,10 @@ EnvironmentItems QnxUtils::qnxEnvironmentFromEnvFile(const QString &fileName)
QTextStream fileContent(&tmpFile);
if (isWindows)
fileContent << "@echo off\n"
<< "call " << fileName << '\n';
<< "call " << filePath.path() << '\n';
else
fileContent << "#!/bin/bash\n"
<< ". " << fileName << '\n';
<< ". " << filePath.path() << '\n';
QString linePattern = QString::fromLatin1(isWindows ? "echo %1=%%1%" : "echo %1=$%1");
for (int i = 0, len = sizeof(EVAL_ENV_VARS) / sizeof(const char *); i < len; ++i)
fileContent << linePattern.arg(QLatin1String(EVAL_ENV_VARS[i])) << QLatin1Char('\n');
@@ -140,19 +140,18 @@ EnvironmentItems QnxUtils::qnxEnvironmentFromEnvFile(const QString &fileName)
return items;
}
QString QnxUtils::envFilePath(const QString &sdpPath)
FilePath QnxUtils::envFilePath(const FilePath &sdpPath)
{
QDir sdp(sdpPath);
QStringList entries;
if (HostOsInfo::isWindowsHost())
entries = sdp.entryList(QStringList(QLatin1String("*-env.bat")));
FilePaths entries;
if (sdpPath.osType() == OsTypeWindows)
entries = sdpPath.dirEntries({"*-env.bat"});
else
entries = sdp.entryList(QStringList(QLatin1String("*-env.sh")));
entries = sdpPath.dirEntries({"*-env.sh"});
if (!entries.isEmpty())
return sdp.absoluteFilePath(entries.first());
return entries.first();
return QString();
return {};
}
QString QnxUtils::defaultTargetVersion(const QString &sdpPath)
@@ -208,7 +207,7 @@ QList<ConfigInstallInformation> QnxUtils::installedConfigs(const QString &config
return sdpList;
}
EnvironmentItems QnxUtils::qnxEnvironment(const QString &sdpPath)
EnvironmentItems QnxUtils::qnxEnvironment(const FilePath &sdpPath)
{
return qnxEnvironmentFromEnvFile(envFilePath(sdpPath));
}

View File

@@ -68,11 +68,11 @@ class QnxUtils
public:
static QString cpuDirFromAbi(const ProjectExplorer::Abi &abi);
static QString cpuDirShortDescription(const QString &cpuDir);
static Utils::EnvironmentItems qnxEnvironmentFromEnvFile(const QString &fileName);
static QString envFilePath(const QString &sdpPath);
static Utils::EnvironmentItems qnxEnvironmentFromEnvFile(const Utils::FilePath &filePath);
static Utils::FilePath envFilePath(const Utils::FilePath &sdpPath);
static QString defaultTargetVersion(const QString &sdpPath);
static QList<ConfigInstallInformation> installedConfigs(const QString &configPath = QString());
static Utils::EnvironmentItems qnxEnvironment(const QString &sdpPath);
static Utils::EnvironmentItems qnxEnvironment(const Utils::FilePath &sdpPath);
static QList<QnxTarget> findTargets(const Utils::FilePath &basePath);
static ProjectExplorer::Abi convertAbi(const ProjectExplorer::Abi &abi);
static ProjectExplorer::Abis convertAbis(const ProjectExplorer::Abis &abis);