ProjectExplorer: Use an alias for QList<Abi>

Change-Id: I69231c5974620ae30296bfc4e0ab41c900d95a3c
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
hjk
2019-05-27 11:04:18 +02:00
parent 98c4994c38
commit 2ac89cba92
30 changed files with 89 additions and 85 deletions

View File

@@ -951,7 +951,7 @@ static QVariant findOrRegisterDebugger(ToolChain *tc)
// check if the debugger is already registered, but ignoring the display name // check if the debugger is already registered, but ignoring the display name
const Debugger::DebuggerItem *existing = Debugger::DebuggerItemManager::findByCommand(command); const Debugger::DebuggerItem *existing = Debugger::DebuggerItemManager::findByCommand(command);
if (existing && existing->engineType() == Debugger::GdbEngineType && existing->isAutoDetected() if (existing && existing->engineType() == Debugger::GdbEngineType && existing->isAutoDetected()
&& existing->abis() == QList<Abi>{tc->targetAbi()}) && existing->abis() == Abis{tc->targetAbi()})
return existing->id(); return existing->id();
// debugger not found, register a new one // debugger not found, register a new one
Debugger::DebuggerItem debugger; Debugger::DebuggerItem debugger;
@@ -997,7 +997,7 @@ void AndroidConfigurations::updateAutomaticKitList()
return v->type() == Constants::ANDROIDQT; return v->type() == Constants::ANDROIDQT;
}); });
for (const QtSupport::BaseQtVersion *qtVersion : qtVersions) { for (const QtSupport::BaseQtVersion *qtVersion : qtVersions) {
const QList<Abi> qtAbis = qtVersion->qtAbis(); const Abis qtAbis = qtVersion->qtAbis();
if (qtAbis.empty()) if (qtAbis.empty())
continue; continue;
qtVersionsForArch[qtAbis.first()].append(qtVersion); qtVersionsForArch[qtAbis.first()].append(qtVersion);

View File

@@ -69,9 +69,9 @@ QString AndroidQtVersion::invalidReason() const
return tmp; return tmp;
} }
QList<Abi> AndroidQtVersion::detectQtAbis() const Abis AndroidQtVersion::detectQtAbis() const
{ {
QList<Abi> abis = BaseQtVersion::detectQtAbis(); Abis abis = BaseQtVersion::detectQtAbis();
for (int i = 0; i < abis.count(); ++i) { for (int i = 0; i < abis.count(); ++i) {
abis[i] = Abi(abis.at(i).architecture(), abis[i] = Abi(abis.at(i).architecture(),
abis.at(i).os(), abis.at(i).os(),

View File

@@ -43,7 +43,7 @@ public:
bool isValid() const override; bool isValid() const override;
QString invalidReason() const override; QString invalidReason() const override;
QList<ProjectExplorer::Abi> detectQtAbis() const override; ProjectExplorer::Abis detectQtAbis() const override;
void addToEnvironment(const ProjectExplorer::Kit *k, Utils::Environment &env) const override; void addToEnvironment(const ProjectExplorer::Kit *k, Utils::Environment &env) const override;
Utils::Environment qmakeRunEnvironment() const override; Utils::Environment qmakeRunEnvironment() const override;

View File

@@ -343,7 +343,7 @@ void DebuggerItem::setVersion(const QString &version)
m_version = version; m_version = version;
} }
void DebuggerItem::setAbis(const QList<Abi> &abis) void DebuggerItem::setAbis(const Abis &abis)
{ {
m_abis = abis; m_abis = abis;
} }

View File

@@ -81,8 +81,8 @@ public:
QString version() const; QString version() const;
void setVersion(const QString &version); void setVersion(const QString &version);
const QList<ProjectExplorer::Abi> &abis() const { return m_abis; } const ProjectExplorer::Abis &abis() const { return m_abis; }
void setAbis(const QList<ProjectExplorer::Abi> &abis); void setAbis(const ProjectExplorer::Abis &abis);
void setAbi(const ProjectExplorer::Abi &abi); void setAbi(const ProjectExplorer::Abi &abi);
enum MatchLevel { DoesNotMatch, MatchesSomewhat, MatchesWell, MatchesPerfectly, MatchesPerfectlyInPath }; enum MatchLevel { DoesNotMatch, MatchesSomewhat, MatchesWell, MatchesPerfectly, MatchesPerfectlyInPath };
@@ -113,7 +113,7 @@ private:
Utils::FileName m_workingDirectory; Utils::FileName m_workingDirectory;
bool m_isAutoDetected = false; bool m_isAutoDetected = false;
QString m_version; QString m_version;
QList<ProjectExplorer::Abi> m_abis; ProjectExplorer::Abis m_abis;
QDateTime m_lastModified; QDateTime m_lastModified;
friend class Internal::DebuggerConfigWidget; friend class Internal::DebuggerConfigWidget;

View File

@@ -350,7 +350,7 @@ DebuggerItem DebuggerItemConfigWidget::item() const
item.setCommand(m_binaryChooser->fileName()); item.setCommand(m_binaryChooser->fileName());
item.setWorkingDirectory(m_workingDirectoryChooser->fileName()); item.setWorkingDirectory(m_workingDirectoryChooser->fileName());
item.setAutoDetected(m_autodetected); item.setAutoDetected(m_autodetected);
QList<ProjectExplorer::Abi> abiList; ProjectExplorer::Abis abiList;
foreach (const QString &a, m_abis->text().split(QRegExp("[^A-Za-z0-9-_]+"))) { foreach (const QString &a, m_abis->text().split(QRegExp("[^A-Za-z0-9-_]+"))) {
if (a.isNull()) if (a.isNull())
continue; continue;

View File

@@ -807,7 +807,7 @@ static QString msgParameterMissing(const QString &a)
return DebuggerPlugin::tr("Option \"%1\" is missing the parameter.").arg(a); return DebuggerPlugin::tr("Option \"%1\" is missing the parameter.").arg(a);
} }
static Kit *guessKitFromAbis(const QList<Abi> &abis) static Kit *guessKitFromAbis(const Abis &abis)
{ {
Kit *kit = nullptr; Kit *kit = nullptr;
@@ -2620,8 +2620,8 @@ void DebuggerUnitTests::testDebuggerMatching()
auto expectedLevel = static_cast<DebuggerItem::MatchLevel>(result); auto expectedLevel = static_cast<DebuggerItem::MatchLevel>(result);
QList<Abi> debuggerAbis; Abis debuggerAbis;
foreach (const QString &abi, debugger) for (const QString &abi : qAsConst(debugger))
debuggerAbis << Abi::fromString(abi); debuggerAbis << Abi::fromString(abi);
DebuggerItem item; DebuggerItem item;

View File

@@ -59,9 +59,9 @@ QString IosQtVersion::invalidReason() const
return tmp; return tmp;
} }
QList<Abi> IosQtVersion::detectQtAbis() const Abis IosQtVersion::detectQtAbis() const
{ {
QList<Abi> abis = BaseQtVersion::detectQtAbis(); Abis abis = BaseQtVersion::detectQtAbis();
for (int i = 0; i < abis.count(); ++i) { for (int i = 0; i < abis.count(); ++i) {
abis[i] = Abi(abis.at(i).architecture(), abis[i] = Abi(abis.at(i).architecture(),
abis.at(i).os(), abis.at(i).os(),

View File

@@ -43,7 +43,7 @@ public:
bool isValid() const override; bool isValid() const override;
QString invalidReason() const override; QString invalidReason() const override;
QList<ProjectExplorer::Abi> detectQtAbis() const override; ProjectExplorer::Abis detectQtAbis() const override;
void addToEnvironment(const ProjectExplorer::Kit *k, Utils::Environment &env) const override; void addToEnvironment(const ProjectExplorer::Kit *k, Utils::Environment &env) const override;

View File

@@ -219,9 +219,9 @@ static Abi macAbiForCpu(quint32 type) {
} }
} }
static QList<Abi> parseCoffHeader(const QByteArray &data) static Abis parseCoffHeader(const QByteArray &data)
{ {
QList<Abi> result; Abis result;
if (data.size() < 20) if (data.size() < 20)
return result; return result;
@@ -305,9 +305,9 @@ static QList<Abi> parseCoffHeader(const QByteArray &data)
return result; return result;
} }
static QList<Abi> abiOf(const QByteArray &data) static Abis abiOf(const QByteArray &data)
{ {
QList<Abi> result; Abis result;
if (data.size() <= 8) if (data.size() <= 8)
return result; return result;
@@ -983,9 +983,9 @@ Abi Abi::hostAbi()
} }
//! Extract available ABIs from a binary using heuristics. //! Extract available ABIs from a binary using heuristics.
QList<Abi> Abi::abisOfBinary(const Utils::FileName &path) Abis Abi::abisOfBinary(const Utils::FileName &path)
{ {
QList<Abi> tmp; Abis tmp;
if (path.isEmpty()) if (path.isEmpty())
return tmp; return tmp;
@@ -1038,8 +1038,8 @@ QList<Abi> Abi::abisOfBinary(const Utils::FileName &path)
f.close(); f.close();
// Remove duplicates: // Remove duplicates:
QList<Abi> result; Abis result;
foreach (const Abi &a, tmp) { for (const Abi &a : qAsConst(tmp)) {
if (!result.contains(a)) if (!result.contains(a))
result.append(a); result.append(a);
} }
@@ -1233,7 +1233,7 @@ void ProjectExplorer::ProjectExplorerPlugin::testAbiOfBinary()
QFETCH(QString, file); QFETCH(QString, file);
QFETCH(QStringList, abis); QFETCH(QStringList, abis);
QList<Abi> result = Abi::abisOfBinary(Utils::FileName::fromString(file)); const Abis result = Abi::abisOfBinary(Utils::FileName::fromString(file));
QCOMPARE(result.count(), abis.count()); QCOMPARE(result.count(), abis.count());
for (int i = 0; i < abis.count(); ++i) for (int i = 0; i < abis.count(); ++i)
QCOMPARE(result.at(i).toString(), abis.at(i)); QCOMPARE(result.at(i).toString(), abis.at(i));

View File

@@ -42,6 +42,9 @@ namespace ProjectExplorer {
// ABI (documentation inside) // ABI (documentation inside)
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
class Abi;
using Abis = QList<Abi>;
class PROJECTEXPLORER_EXPORT Abi class PROJECTEXPLORER_EXPORT Abi
{ {
public: public:
@@ -157,7 +160,7 @@ public:
static Abi fromString(const QString &abiString); static Abi fromString(const QString &abiString);
static Abi hostAbi(); static Abi hostAbi();
static QList<Abi> abisOfBinary(const Utils::FileName &path); static Abis abisOfBinary(const Utils::FileName &path);
private: private:

View File

@@ -151,12 +151,12 @@ AbiWidget::AbiWidget(QWidget *parent) : QWidget(parent),
layout->setStretchFactor(d->m_abi, 1); layout->setStretchFactor(d->m_abi, 1);
setAbis(QList<Abi>(), Abi::hostAbi()); setAbis(Abis(), Abi::hostAbi());
} }
AbiWidget::~AbiWidget() = default; AbiWidget::~AbiWidget() = default;
static Abi selectAbi(const Abi &current, const QList<Abi> &abiList) static Abi selectAbi(const Abi &current, const Abis &abiList)
{ {
if (!current.isNull()) if (!current.isNull())
return current; return current;
@@ -165,7 +165,7 @@ static Abi selectAbi(const Abi &current, const QList<Abi> &abiList)
return Abi::hostAbi(); return Abi::hostAbi();
} }
void AbiWidget::setAbis(const QList<Abi> &abiList, const Abi &currentAbi) void AbiWidget::setAbis(const Abis &abiList, const Abi &currentAbi)
{ {
const Abi defaultAbi = selectAbi(currentAbi, abiList); const Abi defaultAbi = selectAbi(currentAbi, abiList);
{ {
@@ -191,9 +191,9 @@ void AbiWidget::setAbis(const QList<Abi> &abiList, const Abi &currentAbi)
emitAbiChanged(defaultAbi); emitAbiChanged(defaultAbi);
} }
QList<Abi> AbiWidget::supportedAbis() const Abis AbiWidget::supportedAbis() const
{ {
QList<Abi> result; Abis result;
result.reserve(d->m_abi->count()); result.reserve(d->m_abi->count());
for (int i = 1; i < d->m_abi->count(); ++i) for (int i = 1; i < d->m_abi->count(); ++i)
result << Abi::fromString(d->m_abi->itemData(i).toString()); result << Abi::fromString(d->m_abi->itemData(i).toString());

View File

@@ -27,12 +27,13 @@
#include "projectexplorer_export.h" #include "projectexplorer_export.h"
#include "abi.h"
#include <QWidget> #include <QWidget>
#include <memory> #include <memory>
namespace ProjectExplorer { namespace ProjectExplorer {
class Abi;
namespace Internal { class AbiWidgetPrivate; } namespace Internal { class AbiWidgetPrivate; }
@@ -48,9 +49,9 @@ public:
AbiWidget(QWidget *parent = nullptr); AbiWidget(QWidget *parent = nullptr);
~AbiWidget() override; ~AbiWidget() override;
void setAbis(const QList<Abi> &, const Abi &currentAbi); void setAbis(const ProjectExplorer::Abis &, const Abi &currentAbi);
QList<Abi> supportedAbis() const; Abis supportedAbis() const;
bool isCustomAbi() const; bool isCustomAbi() const;
Abi currentAbi() const; Abi currentAbi() const;

View File

@@ -598,7 +598,7 @@ void CustomToolChainConfigWidget::setFromToolchain()
auto tc = static_cast<CustomToolChain *>(toolChain()); auto tc = static_cast<CustomToolChain *>(toolChain());
m_compilerCommand->setFileName(tc->compilerCommand()); m_compilerCommand->setFileName(tc->compilerCommand());
m_makeCommand->setFileName(tc->makeCommand(Environment())); m_makeCommand->setFileName(tc->makeCommand(Environment()));
m_abiWidget->setAbis(QList<Abi>(), tc->targetAbi()); m_abiWidget->setAbis(Abis(), tc->targetAbi());
const QStringList macroLines = Utils::transform<QList>(tc->rawPredefinedMacros(), [](const Macro &m) { const QStringList macroLines = Utils::transform<QList>(tc->rawPredefinedMacros(), [](const Macro &m) {
return QString::fromUtf8(m.toKeyValue(QByteArray())); return QString::fromUtf8(m.toKeyValue(QByteArray()));
}); });

View File

@@ -167,9 +167,9 @@ HeaderPaths GccToolChain::gccHeaderPaths(const FileName &gcc, const QStringList
return builtInHeaderPaths; return builtInHeaderPaths;
} }
static QList<Abi> guessGccAbi(const QString &m, const ProjectExplorer::Macros &macros) static Abis guessGccAbi(const QString &m, const ProjectExplorer::Macros &macros)
{ {
QList<Abi> abiList; Abis abiList;
Abi guessed = Abi::abiFromTargetTriplet(m); Abi guessed = Abi::abiFromTargetTriplet(m);
if (guessed.isNull()) if (guessed.isNull())
@@ -249,12 +249,12 @@ void GccToolChain::setCompilerCommand(const FileName &path)
toolChainUpdated(); toolChainUpdated();
} }
void GccToolChain::setSupportedAbis(const QList<Abi> &m_abis) void GccToolChain::setSupportedAbis(const Abis &abis)
{ {
if (m_supportedAbis == m_abis) if (m_supportedAbis == abis)
return; return;
m_supportedAbis = m_abis; m_supportedAbis = abis;
toolChainUpdated(); toolChainUpdated();
} }
@@ -322,7 +322,7 @@ void GccToolChain::setTargetAbi(const Abi &abi)
toolChainUpdated(); toolChainUpdated();
} }
QList<Abi> GccToolChain::supportedAbis() const Abis GccToolChain::supportedAbis() const
{ {
return m_supportedAbis; return m_supportedAbis;
} }
@@ -1151,7 +1151,7 @@ void GccToolChainConfigWidget::handleCompilerCommandChange()
Abi currentAbi = m_abiWidget->currentAbi(); Abi currentAbi = m_abiWidget->currentAbi();
bool customAbi = m_abiWidget->isCustomAbi() && m_abiWidget->isEnabled(); bool customAbi = m_abiWidget->isCustomAbi() && m_abiWidget->isEnabled();
FileName path = m_compilerCommand->fileName(); FileName path = m_compilerCommand->fileName();
QList<Abi> abiList; Abis abiList;
if (!path.isEmpty()) { if (!path.isEmpty()) {
QFileInfo fi(path.toFileInfo()); QFileInfo fi(path.toFileInfo());
@@ -1941,7 +1941,7 @@ void ProjectExplorerPlugin::testGccAbiGuessing()
QFETCH(QByteArray, macros); QFETCH(QByteArray, macros);
QFETCH(QStringList, abiList); QFETCH(QStringList, abiList);
QList<Abi> al = guessGccAbi(input, ProjectExplorer::Macro::toMacros(macros)); const Abis al = guessGccAbi(input, ProjectExplorer::Macro::toMacros(macros));
QCOMPARE(al.count(), abiList.count()); QCOMPARE(al.count(), abiList.count());
for (int i = 0; i < al.count(); ++i) for (int i = 0; i < al.count(); ++i)
QCOMPARE(al.at(i).toString(), abiList.at(i)); QCOMPARE(al.at(i).toString(), abiList.at(i));

View File

@@ -72,7 +72,7 @@ public:
Abi targetAbi() const override; Abi targetAbi() const override;
QString originalTargetTriple() const override; QString originalTargetTriple() const override;
QString version() const; QString version() const;
QList<Abi> supportedAbis() const override; Abis supportedAbis() const override;
void setTargetAbi(const Abi &); void setTargetAbi(const Abi &);
bool isValid() const override; bool isValid() const override;
@@ -112,13 +112,12 @@ public:
class DetectedAbisResult { class DetectedAbisResult {
public: public:
DetectedAbisResult() = default; DetectedAbisResult() = default;
DetectedAbisResult(const QList<Abi> &supportedAbis, DetectedAbisResult(const Abis &supportedAbis, const QString &originalTargetTriple = {}) :
const QString &originalTargetTriple = QString()) :
supportedAbis(supportedAbis), supportedAbis(supportedAbis),
originalTargetTriple(originalTargetTriple) originalTargetTriple(originalTargetTriple)
{ } { }
QList<Abi> supportedAbis; Abis supportedAbis;
QString originalTargetTriple; QString originalTargetTriple;
}; };
@@ -127,7 +126,7 @@ protected:
using GccCache = QVector<CacheItem>; using GccCache = QVector<CacheItem>;
void setCompilerCommand(const Utils::FileName &path); void setCompilerCommand(const Utils::FileName &path);
void setSupportedAbis(const QList<Abi> &m_abis); void setSupportedAbis(const Abis &abis);
void setOriginalTargetTriple(const QString &targetTriple); void setOriginalTargetTriple(const QString &targetTriple);
void setMacroCache(const QStringList &allCxxflags, const Macros &macroCache) const; void setMacroCache(const QStringList &allCxxflags, const Macros &macroCache) const;
Macros macroCache(const QStringList &allCxxflags) const; Macros macroCache(const QStringList &allCxxflags) const;
@@ -194,7 +193,7 @@ protected:
private: private:
Abi m_targetAbi; Abi m_targetAbi;
mutable QList<Abi> m_supportedAbis; mutable Abis m_supportedAbis;
mutable QString m_originalTargetTriple; mutable QString m_originalTargetTriple;
mutable HeaderPaths m_headerPaths; mutable HeaderPaths m_headerPaths;
mutable QString m_version; mutable QString m_version;

View File

@@ -776,7 +776,7 @@ void MsvcToolChain::updateEnvironmentModifications(QList<Utils::EnvironmentItem>
void MsvcToolChain::detectInstalledAbis() void MsvcToolChain::detectInstalledAbis()
{ {
static QMap<QString, QList<Abi>> abiCache; static QMap<QString, Abis> abiCache;
const QString vcVarsBase const QString vcVarsBase
= QDir::fromNativeSeparators(m_vcvarsBat).left(m_vcvarsBat.lastIndexOf('/')); = QDir::fromNativeSeparators(m_vcvarsBat).left(m_vcvarsBat.lastIndexOf('/'));
if (abiCache.contains(vcVarsBase)) { if (abiCache.contains(vcVarsBase)) {
@@ -913,7 +913,7 @@ Abi MsvcToolChain::targetAbi() const
return m_abi; return m_abi;
} }
QList<Abi> MsvcToolChain::supportedAbis() const Abis MsvcToolChain::supportedAbis() const
{ {
return m_supportedAbis; return m_supportedAbis;
} }

View File

@@ -64,7 +64,7 @@ public:
~MsvcToolChain() override; ~MsvcToolChain() override;
Abi targetAbi() const override; Abi targetAbi() const override;
QList<Abi> supportedAbis() const override; Abis supportedAbis() const override;
void setTargetAbi(const Abi &abi); void setTargetAbi(const Abi &abi);
bool isValid() const override; bool isValid() const override;
@@ -168,7 +168,7 @@ private:
protected: protected:
Abi m_abi; Abi m_abi;
QList<Abi> m_supportedAbis; Abis m_supportedAbis;
QString m_vcvarsBat; QString m_vcvarsBat;
QString m_varsBatArg; // Argument QString m_varsBatArg; // Argument

View File

@@ -179,7 +179,7 @@ Core::Id ToolChain::typeId() const
return d->m_typeId; return d->m_typeId;
} }
QList<Abi> ToolChain::supportedAbis() const Abis ToolChain::supportedAbis() const
{ {
return {targetAbi()}; return {targetAbi()};
} }

View File

@@ -28,6 +28,7 @@
#include "projectexplorer_export.h" #include "projectexplorer_export.h"
#include "projectexplorer_global.h" #include "projectexplorer_global.h"
#include "abi.h"
#include "headerpath.h" #include "headerpath.h"
#include "projectmacro.h" #include "projectmacro.h"
#include "toolchaincache.h" #include "toolchaincache.h"
@@ -104,7 +105,7 @@ public:
Core::Id typeId() const; Core::Id typeId() const;
virtual QString typeDisplayName() const = 0; virtual QString typeDisplayName() const = 0;
virtual Abi targetAbi() const = 0; virtual Abi targetAbi() const = 0;
virtual QList<Abi> supportedAbis() const; virtual ProjectExplorer::Abis supportedAbis() const;
virtual QString originalTargetTriple() const { return QString(); } virtual QString originalTargetTriple() const { return QString(); }
virtual QStringList extraCodeModelFlags() const { return QStringList(); } virtual QStringList extraCodeModelFlags() const { return QStringList(); }

View File

@@ -164,7 +164,7 @@ QList<void *> QmakeProjectImporter::examineDirectory(const FileName &importPath)
} }
if (version->type() == QtSupport::Constants::DESKTOPQT) { if (version->type() == QtSupport::Constants::DESKTOPQT) {
const QList<ProjectExplorer::Abi> abis = version->qtAbis(); const ProjectExplorer::Abis abis = version->qtAbis();
if (!abis.isEmpty()) { if (!abis.isEmpty()) {
ProjectExplorer::Abi abi = abis.first(); ProjectExplorer::Abi abi = abis.first();
if (abi.os() == ProjectExplorer::Abi::DarwinOS) { if (abi.os() == ProjectExplorer::Abi::DarwinOS) {
@@ -271,7 +271,7 @@ static const QList<ToolChain *> preferredToolChains(BaseQtVersion *qtVersion, co
const FileName spec = ms.isEmpty() ? qtVersion->mkspec() : ms; const FileName spec = ms.isEmpty() ? qtVersion->mkspec() : ms;
const QList<ToolChain *> toolchains = ToolChainManager::toolChains(); const QList<ToolChain *> toolchains = ToolChainManager::toolChains();
QList<Abi> qtAbis = qtVersion->qtAbis(); const Abis qtAbis = qtVersion->qtAbis();
const auto matcher = [&](const ToolChain *tc) { const auto matcher = [&](const ToolChain *tc) {
return qtAbis.contains(tc->targetAbi()) return qtAbis.contains(tc->targetAbi())
&& tc->suggestedMkspecList().contains(spec) && tc->suggestedMkspecList().contains(spec)

View File

@@ -118,7 +118,7 @@ void QnxQtVersion::fromMap(const QVariantMap &map)
setSdpPath(QDir::fromNativeSeparators(map.value(QLatin1String(SDP_PATH_KEY)).toString())); setSdpPath(QDir::fromNativeSeparators(map.value(QLatin1String(SDP_PATH_KEY)).toString()));
} }
QList<ProjectExplorer::Abi> QnxQtVersion::detectQtAbis() const ProjectExplorer::Abis QnxQtVersion::detectQtAbis() const
{ {
ensureMkSpecParsed(); ensureMkSpecParsed();
return QnxUtils::convertAbis(BaseQtVersion::detectQtAbis()); return QnxUtils::convertAbis(BaseQtVersion::detectQtAbis());

View File

@@ -54,7 +54,7 @@ public:
QVariantMap toMap() const override; QVariantMap toMap() const override;
void fromMap(const QVariantMap &map) override; void fromMap(const QVariantMap &map) override;
QList<ProjectExplorer::Abi> detectQtAbis() const override; ProjectExplorer::Abis detectQtAbis() const override;
void addToEnvironment(const ProjectExplorer::Kit *k, Utils::Environment &env) const override; void addToEnvironment(const ProjectExplorer::Kit *k, Utils::Environment &env) const override;
Utils::Environment qmakeRunEnvironment() const override; Utils::Environment qmakeRunEnvironment() const override;

View File

@@ -44,9 +44,9 @@ namespace Internal {
static const char CompilerSdpPath[] = "Qnx.QnxToolChain.NDKPath"; static const char CompilerSdpPath[] = "Qnx.QnxToolChain.NDKPath";
static const char CpuDirKey[] = "Qnx.QnxToolChain.CpuDir"; static const char CpuDirKey[] = "Qnx.QnxToolChain.CpuDir";
static QList<Abi> detectTargetAbis(const FileName &sdpPath) static Abis detectTargetAbis(const FileName &sdpPath)
{ {
QList<Abi> result; Abis result;
FileName qnxTarget; FileName qnxTarget;
if (!sdpPath.fileName().isEmpty()) { if (!sdpPath.fileName().isEmpty()) {
@@ -243,7 +243,7 @@ QnxToolChainConfigWidget::QnxToolChainConfigWidget(QnxToolChain *tc)
m_sdpPath->setPath(tc->sdpPath()); m_sdpPath->setPath(tc->sdpPath());
m_sdpPath->setEnabled(!tc->isAutoDetected()); m_sdpPath->setEnabled(!tc->isAutoDetected());
QList<Abi> abiList = detectTargetAbis(m_sdpPath->fileName()); const Abis abiList = detectTargetAbis(m_sdpPath->fileName());
m_abiWidget->setAbis(abiList, tc->targetAbi()); m_abiWidget->setAbis(abiList, tc->targetAbi());
m_abiWidget->setEnabled(!tc->isAutoDetected() && !abiList.isEmpty()); m_abiWidget->setEnabled(!tc->isAutoDetected() && !abiList.isEmpty());
@@ -295,9 +295,9 @@ bool QnxToolChainConfigWidget::isDirtyImpl() const
void QnxToolChainConfigWidget::handleSdpPathChange() void QnxToolChainConfigWidget::handleSdpPathChange()
{ {
Abi currentAbi = m_abiWidget->currentAbi(); const Abi currentAbi = m_abiWidget->currentAbi();
bool customAbi = m_abiWidget->isCustomAbi(); const bool customAbi = m_abiWidget->isCustomAbi();
QList<Abi> abiList = detectTargetAbis(m_sdpPath->fileName()); const Abis abiList = detectTargetAbis(m_sdpPath->fileName());
m_abiWidget->setEnabled(!abiList.isEmpty()); m_abiWidget->setEnabled(!abiList.isEmpty());

View File

@@ -251,7 +251,7 @@ Abi QnxUtils::convertAbi(const Abi &abi)
return abi; return abi;
} }
QList<Abi> QnxUtils::convertAbis(const QList<Abi> &abis) Abis QnxUtils::convertAbis(const Abis &abis)
{ {
return Utils::transform(abis, &QnxUtils::convertAbi); return Utils::transform(abis, &QnxUtils::convertAbi);
} }

View File

@@ -77,7 +77,7 @@ public:
static QList<Utils::EnvironmentItem> qnxEnvironment(const QString &sdpPath); static QList<Utils::EnvironmentItem> qnxEnvironment(const QString &sdpPath);
static QList<QnxTarget> findTargets(const Utils::FileName &basePath); static QList<QnxTarget> findTargets(const Utils::FileName &basePath);
static ProjectExplorer::Abi convertAbi(const ProjectExplorer::Abi &abi); static ProjectExplorer::Abi convertAbi(const ProjectExplorer::Abi &abi);
static QList<ProjectExplorer::Abi> convertAbis(const QList<ProjectExplorer::Abi> &abis); static ProjectExplorer::Abis convertAbis(const ProjectExplorer::Abis &abis);
}; };
} // namespace Internal } // namespace Internal

View File

@@ -359,7 +359,7 @@ QList<Task> BaseQtVersion::validateKit(const Kit *k)
BaseQtVersion *version = QtKitAspect::qtVersion(k); BaseQtVersion *version = QtKitAspect::qtVersion(k);
Q_ASSERT(version == this); Q_ASSERT(version == this);
const QList<Abi> qtAbis = version->qtAbis(); const Abis qtAbis = version->qtAbis();
if (qtAbis.isEmpty()) // No need to test if Qt does not know anyway... if (qtAbis.isEmpty()) // No need to test if Qt does not know anyway...
return result; return result;
@@ -379,7 +379,7 @@ QList<Task> BaseQtVersion::validateKit(const Kit *k)
bool fullMatch = false; bool fullMatch = false;
QString qtAbiString; QString qtAbiString;
foreach (const Abi &qtAbi, qtAbis) { for (const Abi &qtAbi : qtAbis) {
if (!qtAbiString.isEmpty()) if (!qtAbiString.isEmpty())
qtAbiString.append(' '); qtAbiString.append(' ');
qtAbiString.append(qtAbi.toString()); qtAbiString.append(qtAbi.toString());
@@ -620,7 +620,7 @@ FileName BaseQtVersion::qmakeCommand() const
return m_qmakeCommand; return m_qmakeCommand;
} }
QList<Abi> BaseQtVersion::qtAbis() const Abis BaseQtVersion::qtAbis() const
{ {
if (!m_hasQtAbis) { if (!m_hasQtAbis) {
m_qtAbis = detectQtAbis(); m_qtAbis = detectQtAbis();
@@ -629,7 +629,7 @@ QList<Abi> BaseQtVersion::qtAbis() const
return m_qtAbis; return m_qtAbis;
} }
QList<Abi> BaseQtVersion::detectQtAbis() const Abis BaseQtVersion::detectQtAbis() const
{ {
return qtAbisFromLibrary(qtCorePaths()); return qtAbisFromLibrary(qtCorePaths());
} }
@@ -705,7 +705,7 @@ QString BaseQtVersion::toHtml(bool verbose) const
} else { } else {
str << "<tr><td><b>" << QCoreApplication::translate("BaseQtVersion", "ABI:") str << "<tr><td><b>" << QCoreApplication::translate("BaseQtVersion", "ABI:")
<< "</b></td>"; << "</b></td>";
const QList<Abi> abis = qtAbis(); const Abis abis = qtAbis();
if (abis.isEmpty()) { if (abis.isEmpty()) {
str << "<td>" << Abi().toString() << "</td></tr>"; str << "<td>" << Abi().toString() << "</td></tr>";
} else { } else {
@@ -1558,7 +1558,7 @@ bool BaseQtVersion::queryQMakeVariables(const FileName &binary, const Environmen
// Try running qmake with all kinds of tool chains set up in the environment. // Try running qmake with all kinds of tool chains set up in the environment.
// This is required to make non-static qmakes work on windows where every tool chain // This is required to make non-static qmakes work on windows where every tool chain
// tries to be incompatible with any other. // tries to be incompatible with any other.
QList<Abi> abiList = Abi::abisOfBinary(binary); Abis abiList = Abi::abisOfBinary(binary);
const QList<ToolChain *> tcList const QList<ToolChain *> tcList
= ToolChainManager::toolChains([&abiList](const ToolChain *t) { return abiList.contains(t->targetAbi()); }); = ToolChainManager::toolChains([&abiList](const ToolChain *t) { return abiList.contains(t->targetAbi()); });
for (ToolChain *tc : tcList) { for (ToolChain *tc : tcList) {
@@ -2004,10 +2004,10 @@ static Abi scanQtBinaryForBuildStringAndRefineAbi(const FileName &library,
return results.value(library); return results.value(library);
} }
QList<Abi> BaseQtVersion::qtAbisFromLibrary(const FileNameList &coreLibraries) Abis BaseQtVersion::qtAbisFromLibrary(const FileNameList &coreLibraries)
{ {
QList<Abi> res; Abis res;
foreach (const FileName &library, coreLibraries) { for (const FileName &library : coreLibraries) {
for (Abi abi : Abi::abisOfBinary(library)) { for (Abi abi : Abi::abisOfBinary(library)) {
Abi tmp = abi; Abi tmp = abi;
if (abi.osFlavor() == Abi::UnknownFlavor) if (abi.osFlavor() == Abi::UnknownFlavor)

View File

@@ -137,8 +137,8 @@ public:
virtual QString description() const = 0; virtual QString description() const = 0;
virtual QString toHtml(bool verbose) const; virtual QString toHtml(bool verbose) const;
QList<ProjectExplorer::Abi> qtAbis() const; ProjectExplorer::Abis qtAbis() const;
virtual QList<ProjectExplorer::Abi> detectQtAbis() const; virtual ProjectExplorer::Abis detectQtAbis() const;
enum PropertyVariant { PropertyVariantDev, PropertyVariantGet, PropertyVariantSrc }; enum PropertyVariant { PropertyVariantDev, PropertyVariantGet, PropertyVariantSrc };
QString qmakeProperty(const QByteArray &name, QString qmakeProperty(const QByteArray &name,
@@ -265,7 +265,7 @@ protected:
// helper function for desktop and simulator to figure out the supported abis based on the libraries // helper function for desktop and simulator to figure out the supported abis based on the libraries
Utils::FileNameList qtCorePaths() const; Utils::FileNameList qtCorePaths() const;
static QList<ProjectExplorer::Abi> qtAbisFromLibrary(const Utils::FileNameList &coreLibraries); static ProjectExplorer::Abis qtAbisFromLibrary(const Utils::FileNameList &coreLibraries);
void ensureMkSpecParsed() const; void ensureMkSpecParsed() const;
virtual void parseMkSpec(ProFileEvaluator *) const; virtual void parseMkSpec(ProFileEvaluator *) const;
@@ -332,7 +332,7 @@ private:
mutable QString m_linguistCommand; mutable QString m_linguistCommand;
mutable QString m_qscxmlcCommand; mutable QString m_qscxmlcCommand;
mutable QList<ProjectExplorer::Abi> m_qtAbis; mutable ProjectExplorer::Abis m_qtAbis;
MacroExpanderWrapper m_expander; MacroExpanderWrapper m_expander;
}; };

View File

@@ -341,7 +341,7 @@ void QtOptionsPageWidget::infoAnchorClicked(const QUrl &url)
QDesktopServices::openUrl(url); QDesktopServices::openUrl(url);
} }
static QString formatAbiHtmlList(const QList<Abi> &abis) static QString formatAbiHtmlList(const Abis &abis)
{ {
QString result = QStringLiteral("<ul><li>"); QString result = QStringLiteral("<ul><li>");
for (int i = 0, count = abis.size(); i < count; ++i) { for (int i = 0, count = abis.size(); i < count; ++i) {
@@ -369,8 +369,8 @@ QtOptionsPageWidget::ValidityInfo QtOptionsPageWidget::validInformation(const Ba
} }
// Do we have tool chain issues? // Do we have tool chain issues?
QList<Abi> missingToolChains; Abis missingToolChains;
const QList<Abi> qtAbis = version->qtAbis(); const Abis qtAbis = version->qtAbis();
for (const Abi &abi : qtAbis) { for (const Abi &abi : qtAbis) {
const auto abiCompatePred = [&abi] (const ToolChain *tc) const auto abiCompatePred = [&abi] (const ToolChain *tc)

View File

@@ -55,8 +55,8 @@ EmbeddedLinuxQtVersionFactory::EmbeddedLinuxQtVersionFactory()
setPriority(10); setPriority(10);
setRestrictionChecker([](const SetupData &) { setRestrictionChecker([](const SetupData &) {
EmbeddedLinuxQtVersion tempVersion; const EmbeddedLinuxQtVersion tempVersion;
QList<ProjectExplorer::Abi> abis = tempVersion.qtAbis(); const ProjectExplorer::Abis abis = tempVersion.qtAbis();
// Note: This fails for e.g. intel/meego cross builds on x86 linux machines. // Note: This fails for e.g. intel/meego cross builds on x86 linux machines.
return abis.count() == 1 return abis.count() == 1