forked from qt-creator/qt-creator
ProjectExplorer: Pass device to ToolChain::autodetect
Currently unused, will be useful to detect toolchains in docker containers. Change-Id: I0fd7643969ab02c05839332a436147ffb242635d Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
@@ -435,8 +435,10 @@ IarToolChainFactory::IarToolChainFactory()
|
||||
setUserCreatable(true);
|
||||
}
|
||||
|
||||
QList<ToolChain *> IarToolChainFactory::autoDetect(const QList<ToolChain *> &alreadyKnown)
|
||||
QList<ToolChain *> IarToolChainFactory::autoDetect(const QList<ToolChain *> &alreadyKnown,
|
||||
const IDevice::Ptr &device)
|
||||
{
|
||||
Q_UNUSED(device);
|
||||
Candidates candidates;
|
||||
|
||||
#ifdef Q_OS_WIN
|
||||
|
@@ -91,7 +91,8 @@ public:
|
||||
IarToolChainFactory();
|
||||
|
||||
QList<ProjectExplorer::ToolChain *> autoDetect(
|
||||
const QList<ProjectExplorer::ToolChain *> &alreadyKnown) final;
|
||||
const QList<ProjectExplorer::ToolChain *> &alreadyKnown,
|
||||
const ProjectExplorer::IDevice::Ptr &device) final;
|
||||
|
||||
private:
|
||||
QList<ProjectExplorer::ToolChain *> autoDetectToolchains(const Candidates &candidates,
|
||||
|
@@ -605,8 +605,10 @@ static QString extractVersion(const QString &toolsFile, const QString §ion)
|
||||
return {};
|
||||
}
|
||||
|
||||
QList<ToolChain *> KeilToolChainFactory::autoDetect(const QList<ToolChain *> &alreadyKnown)
|
||||
QList<ToolChain *> KeilToolChainFactory::autoDetect(const QList<ToolChain *> &alreadyKnown,
|
||||
const IDevice::Ptr &device)
|
||||
{
|
||||
Q_UNUSED(device)
|
||||
#ifdef Q_OS_WIN64
|
||||
static const char kRegistryNode[] = "HKEY_LOCAL_MACHINE\\SOFTWARE\\WOW6432Node\\Microsoft\\" \
|
||||
"Windows\\CurrentVersion\\Uninstall\\Keil µVision4";
|
||||
|
@@ -92,7 +92,8 @@ public:
|
||||
KeilToolChainFactory();
|
||||
|
||||
QList<ProjectExplorer::ToolChain *> autoDetect(
|
||||
const QList<ProjectExplorer::ToolChain *> &alreadyKnown) final;
|
||||
const QList<ProjectExplorer::ToolChain *> &alreadyKnown,
|
||||
const ProjectExplorer::IDevice::Ptr &device) final;
|
||||
|
||||
private:
|
||||
QList<ProjectExplorer::ToolChain *> autoDetectToolchains(const Candidates &candidates,
|
||||
|
@@ -313,8 +313,10 @@ SdccToolChainFactory::SdccToolChainFactory()
|
||||
setUserCreatable(true);
|
||||
}
|
||||
|
||||
QList<ToolChain *> SdccToolChainFactory::autoDetect(const QList<ToolChain *> &alreadyKnown)
|
||||
QList<ToolChain *> SdccToolChainFactory::autoDetect(const QList<ToolChain *> &alreadyKnown,
|
||||
const IDevice::Ptr &device)
|
||||
{
|
||||
Q_UNUSED(device)
|
||||
Candidates candidates;
|
||||
|
||||
if (Utils::HostOsInfo::isWindowsHost()) {
|
||||
|
@@ -83,7 +83,8 @@ public:
|
||||
SdccToolChainFactory();
|
||||
|
||||
QList<ProjectExplorer::ToolChain *> autoDetect(
|
||||
const QList<ProjectExplorer::ToolChain *> &alreadyKnown) final;
|
||||
const QList<ProjectExplorer::ToolChain *> &alreadyKnown,
|
||||
const ProjectExplorer::IDevice::Ptr &device) final;
|
||||
|
||||
private:
|
||||
QList<ProjectExplorer::ToolChain *> autoDetectToolchains(const Candidates &candidates,
|
||||
|
@@ -580,8 +580,10 @@ IosToolChainFactory::IosToolChainFactory()
|
||||
ProjectExplorer::Constants::CXX_LANGUAGE_ID});
|
||||
}
|
||||
|
||||
QList<ToolChain *> IosToolChainFactory::autoDetect(const QList<ToolChain *> &existingToolChains)
|
||||
QList<ToolChain *> IosToolChainFactory::autoDetect(const QList<ToolChain *> &existingToolChains,
|
||||
const IDevice::Ptr &device)
|
||||
{
|
||||
Q_UNUSED(device);
|
||||
QList<ClangToolChain *> existingClangToolChains = clangToolChains(existingToolChains);
|
||||
const QList<XcodePlatform> platforms = XcodeProbe::detectPlatforms().values();
|
||||
QList<ToolChain *> toolChains;
|
||||
|
@@ -98,7 +98,9 @@ class IosToolChainFactory : public ProjectExplorer::ToolChainFactory
|
||||
public:
|
||||
IosToolChainFactory();
|
||||
|
||||
QList<ProjectExplorer::ToolChain *> autoDetect(const QList<ProjectExplorer::ToolChain *> &existingToolChains) override;
|
||||
QList<ProjectExplorer::ToolChain *> autoDetect(
|
||||
const QList<ProjectExplorer::ToolChain *> &existingToolChains,
|
||||
const ProjectExplorer::IDevice::Ptr &device) override;
|
||||
};
|
||||
|
||||
class IosConfigurations : public QObject
|
||||
|
@@ -419,7 +419,7 @@ static ToolChain *iarToolChain(Id language)
|
||||
return f->supportedToolChainType() == BareMetal::Constants::IAREW_TOOLCHAIN_TYPEID;
|
||||
});
|
||||
if (iarFactory) {
|
||||
const QList<ToolChain*> detected = iarFactory->autoDetect(QList<ToolChain*>());
|
||||
const QList<ToolChain*> detected = iarFactory->autoDetect({}, {});
|
||||
for (auto tc: detected) {
|
||||
if (tc->language() == language) {
|
||||
toolChain = tc;
|
||||
|
@@ -49,8 +49,10 @@ NimToolChainFactory::NimToolChainFactory()
|
||||
setUserCreatable(true);
|
||||
}
|
||||
|
||||
QList<ToolChain *> NimToolChainFactory::autoDetect(const QList<ToolChain *> &alreadyKnown)
|
||||
QList<ToolChain *> NimToolChainFactory::autoDetect(const QList<ToolChain *> &alreadyKnown,
|
||||
const IDevice::Ptr &device)
|
||||
{
|
||||
Q_UNUSED(device);
|
||||
QList<ToolChain *> result;
|
||||
|
||||
Environment systemEnvironment = Environment::systemEnvironment();
|
||||
|
@@ -39,7 +39,8 @@ class NimToolChainFactory : public ProjectExplorer::ToolChainFactory
|
||||
public:
|
||||
NimToolChainFactory();
|
||||
|
||||
QList<ProjectExplorer::ToolChain *> autoDetect(const QList<ProjectExplorer::ToolChain *> &alreadyKnown) final;
|
||||
QList<ProjectExplorer::ToolChain *> autoDetect(const QList<ProjectExplorer::ToolChain *> &alreadyKnown,
|
||||
const ProjectExplorer::IDevice::Ptr &device) final;
|
||||
QList<ProjectExplorer::ToolChain *> detectForImport(const ProjectExplorer::ToolChainDescription &tcd) final;
|
||||
};
|
||||
|
||||
|
@@ -998,7 +998,8 @@ GccToolChainFactory::GccToolChainFactory()
|
||||
setUserCreatable(true);
|
||||
}
|
||||
|
||||
QList<ToolChain *> GccToolChainFactory::autoDetect(const QList<ToolChain *> &alreadyKnown)
|
||||
QList<ToolChain *> GccToolChainFactory::autoDetect(const QList<ToolChain *> &alreadyKnown,
|
||||
const IDevice::Ptr &device)
|
||||
{
|
||||
// GCC is almost never what you want on macOS, but it is by default found in /usr/bin
|
||||
if (HostOsInfo::isMacHost())
|
||||
@@ -1010,9 +1011,11 @@ QList<ToolChain *> GccToolChainFactory::autoDetect(const QList<ToolChain *> &alr
|
||||
&& tc->compilerCommand().fileName() != "c99-gcc";
|
||||
};
|
||||
tcs.append(autoDetectToolchains("g++", DetectVariants::Yes, Constants::CXX_LANGUAGE_ID,
|
||||
Constants::GCC_TOOLCHAIN_TYPEID, alreadyKnown, tcChecker));
|
||||
Constants::GCC_TOOLCHAIN_TYPEID, alreadyKnown,
|
||||
device, tcChecker));
|
||||
tcs.append(autoDetectToolchains("gcc", DetectVariants::Yes, Constants::C_LANGUAGE_ID,
|
||||
Constants::GCC_TOOLCHAIN_TYPEID, alreadyKnown, tcChecker));
|
||||
Constants::GCC_TOOLCHAIN_TYPEID, alreadyKnown,
|
||||
device, tcChecker));
|
||||
return tcs;
|
||||
}
|
||||
|
||||
@@ -1032,10 +1035,16 @@ QList<ToolChain *> GccToolChainFactory::detectForImport(const ToolChainDescripti
|
||||
}
|
||||
|
||||
QList<ToolChain *> GccToolChainFactory::autoDetectToolchains(
|
||||
const QString &compilerName, DetectVariants detectVariants, Utils::Id language,
|
||||
const Utils::Id requiredTypeId, const QList<ToolChain *> &alreadyKnown,
|
||||
const QString &compilerName,
|
||||
DetectVariants detectVariants,
|
||||
const Id language,
|
||||
const Id requiredTypeId,
|
||||
const QList<ToolChain *> &alreadyKnown,
|
||||
const IDevice::Ptr &device,
|
||||
const ToolchainChecker &checker)
|
||||
{
|
||||
Q_UNUSED(device)
|
||||
|
||||
FilePaths compilerPaths;
|
||||
QFileInfo fi(compilerName);
|
||||
if (fi.isAbsolute()) {
|
||||
@@ -1123,8 +1132,8 @@ QList<ToolChain *> GccToolChainFactory::autoDetectToolchains(
|
||||
}
|
||||
}
|
||||
if (!alreadyExists) {
|
||||
const QList<ToolChain *> newToolchains = autoDetectToolChain({compilerPath, language},
|
||||
checker);
|
||||
const QList<ToolChain *> newToolchains
|
||||
= autoDetectToolChain({compilerPath, language}, checker);
|
||||
result << newToolchains;
|
||||
existingCandidates << newToolchains;
|
||||
}
|
||||
@@ -1591,15 +1600,16 @@ ClangToolChainFactory::ClangToolChainFactory()
|
||||
setToolchainConstructor([] { return new ClangToolChain; });
|
||||
}
|
||||
|
||||
QList<ToolChain *> ClangToolChainFactory::autoDetect(const QList<ToolChain *> &alreadyKnown)
|
||||
QList<ToolChain *> ClangToolChainFactory::autoDetect(const QList<ToolChain *> &alreadyKnown,
|
||||
const IDevice::Ptr &device)
|
||||
{
|
||||
QList<ToolChain *> tcs;
|
||||
QList<ToolChain *> known = alreadyKnown;
|
||||
|
||||
tcs.append(autoDetectToolchains("clang++", DetectVariants::Yes, Constants::CXX_LANGUAGE_ID,
|
||||
Constants::CLANG_TOOLCHAIN_TYPEID, alreadyKnown));
|
||||
Constants::CLANG_TOOLCHAIN_TYPEID, alreadyKnown, device));
|
||||
tcs.append(autoDetectToolchains("clang", DetectVariants::Yes, Constants::C_LANGUAGE_ID,
|
||||
Constants::CLANG_TOOLCHAIN_TYPEID, alreadyKnown));
|
||||
Constants::CLANG_TOOLCHAIN_TYPEID, alreadyKnown, device));
|
||||
known.append(tcs);
|
||||
|
||||
const FilePath compilerPath = FilePath::fromString(Core::ICore::clangExecutable(CLANG_BINDIR));
|
||||
@@ -1608,7 +1618,7 @@ QList<ToolChain *> ClangToolChainFactory::autoDetect(const QList<ToolChain *> &a
|
||||
HostOsInfo::withExecutableSuffix("clang"));
|
||||
tcs.append(autoDetectToolchains(clang.toString(), DetectVariants::No,
|
||||
Constants::C_LANGUAGE_ID, Constants::CLANG_TOOLCHAIN_TYPEID,
|
||||
tcs));
|
||||
tcs, device));
|
||||
}
|
||||
|
||||
return tcs;
|
||||
@@ -1779,16 +1789,17 @@ MingwToolChainFactory::MingwToolChainFactory()
|
||||
setToolchainConstructor([] { return new MingwToolChain; });
|
||||
}
|
||||
|
||||
QList<ToolChain *> MingwToolChainFactory::autoDetect(const QList<ToolChain *> &alreadyKnown)
|
||||
QList<ToolChain *> MingwToolChainFactory::autoDetect(const QList<ToolChain *> &alreadyKnown,
|
||||
const IDevice::Ptr &device)
|
||||
{
|
||||
static const auto tcChecker = [](const ToolChain *tc) {
|
||||
return tc->targetAbi().osFlavor() == Abi::WindowsMSysFlavor;
|
||||
};
|
||||
QList<ToolChain *> result = autoDetectToolchains(
|
||||
"g++", DetectVariants::Yes, Constants::CXX_LANGUAGE_ID,
|
||||
Constants::MINGW_TOOLCHAIN_TYPEID, alreadyKnown, tcChecker);
|
||||
Constants::MINGW_TOOLCHAIN_TYPEID, alreadyKnown, device, tcChecker);
|
||||
result += autoDetectToolchains("gcc", DetectVariants::Yes, Constants::C_LANGUAGE_ID,
|
||||
Constants::MINGW_TOOLCHAIN_TYPEID, alreadyKnown, tcChecker);
|
||||
Constants::MINGW_TOOLCHAIN_TYPEID, alreadyKnown, device, tcChecker);
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -1860,13 +1871,14 @@ LinuxIccToolChainFactory::LinuxIccToolChainFactory()
|
||||
setToolchainConstructor([] { return new LinuxIccToolChain; });
|
||||
}
|
||||
|
||||
QList<ToolChain *> LinuxIccToolChainFactory::autoDetect(const QList<ToolChain *> &alreadyKnown)
|
||||
QList<ToolChain *> LinuxIccToolChainFactory::autoDetect(const QList<ToolChain *> &alreadyKnown,
|
||||
const IDevice::Ptr &device)
|
||||
{
|
||||
QList<ToolChain *> result
|
||||
= autoDetectToolchains("icpc", DetectVariants::No, Constants::CXX_LANGUAGE_ID,
|
||||
Constants::LINUXICC_TOOLCHAIN_TYPEID, alreadyKnown);
|
||||
Constants::LINUXICC_TOOLCHAIN_TYPEID, alreadyKnown, device);
|
||||
result += autoDetectToolchains("icc", DetectVariants::Yes, Constants::C_LANGUAGE_ID,
|
||||
Constants::LINUXICC_TOOLCHAIN_TYPEID, alreadyKnown);
|
||||
Constants::LINUXICC_TOOLCHAIN_TYPEID, alreadyKnown, device);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@@ -52,15 +52,17 @@ class GccToolChainFactory : public ToolChainFactory
|
||||
public:
|
||||
GccToolChainFactory();
|
||||
|
||||
QList<ToolChain *> autoDetect(const QList<ToolChain *> &alreadyKnown) override;
|
||||
QList<ToolChain *> detectForImport(const ProjectExplorer::ToolChainDescription &tcd) override;
|
||||
QList<ToolChain *> autoDetect(const QList<ToolChain *> &alreadyKnown,
|
||||
const IDevice::Ptr &device) override;
|
||||
QList<ToolChain *> detectForImport(const ToolChainDescription &tcd) override;
|
||||
|
||||
protected:
|
||||
enum class DetectVariants { Yes, No };
|
||||
using ToolchainChecker = std::function<bool(const ToolChain *)>;
|
||||
QList<ToolChain *> autoDetectToolchains(
|
||||
const QString &compilerName, DetectVariants detectVariants, Utils::Id language,
|
||||
const QString &compilerName, DetectVariants detectVariants, const Utils::Id language,
|
||||
const Utils::Id requiredTypeId, const QList<ToolChain *> &alreadyKnown,
|
||||
const ProjectExplorer::IDevice::Ptr &device,
|
||||
const ToolchainChecker &checker = {});
|
||||
QList<ToolChain *> autoDetectToolChain(
|
||||
const ToolChainDescription &tcd,
|
||||
@@ -132,7 +134,8 @@ class ClangToolChainFactory : public GccToolChainFactory
|
||||
public:
|
||||
ClangToolChainFactory();
|
||||
|
||||
QList<ToolChain *> autoDetect(const QList<ToolChain *> &alreadyKnown) override;
|
||||
QList<ToolChain *> autoDetect(const QList<ToolChain *> &alreadyKnown,
|
||||
const IDevice::Ptr &device) override;
|
||||
QList<ToolChain *> detectForImport(const ToolChainDescription &tcd) final;
|
||||
};
|
||||
|
||||
@@ -145,7 +148,8 @@ class MingwToolChainFactory : public GccToolChainFactory
|
||||
public:
|
||||
MingwToolChainFactory();
|
||||
|
||||
QList<ToolChain *> autoDetect(const QList<ToolChain *> &alreadyKnown) override;
|
||||
QList<ToolChain *> autoDetect(const QList<ToolChain *> &alreadyKnown,
|
||||
const IDevice::Ptr &device) override;
|
||||
QList<ToolChain *> detectForImport(const ToolChainDescription &tcd) final;
|
||||
};
|
||||
|
||||
@@ -158,7 +162,7 @@ class LinuxIccToolChainFactory : public GccToolChainFactory
|
||||
public:
|
||||
LinuxIccToolChainFactory();
|
||||
|
||||
QList<ToolChain *> autoDetect(const QList<ToolChain *> &alreadyKnown) override;
|
||||
QList<ToolChain *> autoDetect(const QList<ToolChain *> &alreadyKnown, const IDevice::Ptr &) override;
|
||||
QList<ToolChain *> detectForImport(const ToolChainDescription &tcd) final;
|
||||
};
|
||||
|
||||
|
@@ -1811,8 +1811,11 @@ static void detectCppBuildTools2015(QList<ToolChain *> *list)
|
||||
}
|
||||
}
|
||||
|
||||
QList<ToolChain *> MsvcToolChainFactory::autoDetect(const QList<ToolChain *> &alreadyKnown)
|
||||
QList<ToolChain *> MsvcToolChainFactory::autoDetect(const QList<ToolChain *> &alreadyKnown,
|
||||
const IDevice::Ptr &device)
|
||||
{
|
||||
Q_UNUSED(device)
|
||||
|
||||
QList<ToolChain *> results;
|
||||
|
||||
// 1) Installed SDKs preferred over standalone Visual studio
|
||||
@@ -1913,9 +1916,11 @@ bool ClangClToolChainFactory::canCreate() const
|
||||
return !g_availableMsvcToolchains.isEmpty();
|
||||
}
|
||||
|
||||
QList<ToolChain *> ClangClToolChainFactory::autoDetect(const QList<ToolChain *> &alreadyKnown)
|
||||
QList<ToolChain *> ClangClToolChainFactory::autoDetect(const QList<ToolChain *> &alreadyKnown,
|
||||
const IDevice::Ptr &device)
|
||||
{
|
||||
Q_UNUSED(alreadyKnown)
|
||||
Q_UNUSED(device) // FIXME: Use it.
|
||||
|
||||
#ifdef Q_OS_WIN64
|
||||
const char registryNode[] = "HKEY_LOCAL_MACHINE\\SOFTWARE\\WOW6432Node\\LLVM\\LLVM";
|
||||
|
@@ -187,7 +187,8 @@ class MsvcToolChainFactory : public ToolChainFactory
|
||||
public:
|
||||
MsvcToolChainFactory();
|
||||
|
||||
QList<ToolChain *> autoDetect(const QList<ToolChain *> &alreadyKnown) override;
|
||||
QList<ToolChain *> autoDetect(const QList<ToolChain *> &alreadyKnown,
|
||||
const IDevice::Ptr &device) override;
|
||||
|
||||
bool canCreate() const override;
|
||||
|
||||
@@ -201,7 +202,8 @@ class ClangClToolChainFactory : public ToolChainFactory
|
||||
public:
|
||||
ClangClToolChainFactory();
|
||||
|
||||
QList<ToolChain *> autoDetect(const QList<ToolChain *> &alreadyKnown) override;
|
||||
QList<ToolChain *> autoDetect(const QList<ToolChain *> &alreadyKnown,
|
||||
const IDevice::Ptr &device) override;
|
||||
|
||||
bool canCreate() const override;
|
||||
};
|
||||
|
@@ -488,9 +488,11 @@ const QList<ToolChainFactory *> ToolChainFactory::allToolChainFactories()
|
||||
return Internal::g_toolChainFactories;
|
||||
}
|
||||
|
||||
QList<ToolChain *> ToolChainFactory::autoDetect(const QList<ToolChain *> &alreadyKnown)
|
||||
QList<ToolChain *> ToolChainFactory::autoDetect(const QList<ToolChain *> &alreadyKnown,
|
||||
const IDevice::Ptr &device)
|
||||
{
|
||||
Q_UNUSED(alreadyKnown)
|
||||
Q_UNUSED(device)
|
||||
return {};
|
||||
}
|
||||
|
||||
|
@@ -28,6 +28,7 @@
|
||||
#include "projectexplorer_export.h"
|
||||
|
||||
#include "abi.h"
|
||||
#include "devicesupport/idevice.h"
|
||||
#include "headerpath.h"
|
||||
#include "projectmacro.h"
|
||||
#include "task.h"
|
||||
@@ -202,7 +203,8 @@ public:
|
||||
QString displayName() const { return m_displayName; }
|
||||
Utils::Id supportedToolChainType() const;
|
||||
|
||||
virtual QList<ToolChain *> autoDetect(const QList<ToolChain *> &alreadyKnown);
|
||||
virtual QList<ToolChain *> autoDetect(const QList<ToolChain *> &alreadyKnown,
|
||||
const IDevice::Ptr &device);
|
||||
virtual QList<ToolChain *> detectForImport(const ToolChainDescription &tcd);
|
||||
|
||||
virtual bool canCreate() const;
|
||||
|
@@ -413,7 +413,7 @@ void ToolChainOptionsWidget::redetectToolchains()
|
||||
QList<ToolChain *> toAdd;
|
||||
QSet<ToolChain *> toDelete;
|
||||
for (ToolChainFactory *f : ToolChainFactory::allToolChainFactories()) {
|
||||
for (ToolChain * const tc : f->autoDetect(knownTcs)) {
|
||||
for (ToolChain * const tc : f->autoDetect(knownTcs, {})) { // FIXME: Pass device.
|
||||
if (knownTcs.contains(tc) || toDelete.contains(tc))
|
||||
continue;
|
||||
const auto matchItem = [tc](const ToolChainTreeItem *item) {
|
||||
|
@@ -67,11 +67,12 @@ struct ToolChainOperations
|
||||
QList<ToolChain *> toDelete;
|
||||
};
|
||||
|
||||
static QList<ToolChain *> autoDetectToolChains(const QList<ToolChain *> alreadyKnownTcs)
|
||||
static QList<ToolChain *> autoDetectToolChains(const QList<ToolChain *> alreadyKnownTcs,
|
||||
const IDevice::Ptr &device)
|
||||
{
|
||||
QList<ToolChain *> result;
|
||||
for (ToolChainFactory *f : ToolChainFactory::allToolChainFactories())
|
||||
result.append(f->autoDetect(alreadyKnownTcs));
|
||||
result.append(f->autoDetect(alreadyKnownTcs, device));
|
||||
|
||||
// Remove invalid toolchains that might have sneaked in.
|
||||
return Utils::filtered(result, [](const ToolChain *tc) { return tc->isValid(); });
|
||||
@@ -203,7 +204,8 @@ QList<ToolChain *> ToolChainSettingsAccessor::restoreToolChains(QWidget *parent)
|
||||
// Autodetect: Pass autodetected toolchains from user file so the information can be reused:
|
||||
const QList<ToolChain *> autodetectedUserFileTcs
|
||||
= Utils::filtered(userFileTcs, &ToolChain::isAutoDetected);
|
||||
const QList<ToolChain *> autodetectedTcs = autoDetectToolChains(autodetectedUserFileTcs);
|
||||
// FIXME: Use real device?
|
||||
const QList<ToolChain *> autodetectedTcs = autoDetectToolChains(autodetectedUserFileTcs, {});
|
||||
|
||||
// merge tool chains and register those that we need to keep:
|
||||
const ToolChainOperations ops = mergeToolChainLists(systemFileTcs, userFileTcs, autodetectedTcs);
|
||||
|
@@ -213,8 +213,11 @@ QnxToolChainFactory::QnxToolChainFactory()
|
||||
}
|
||||
|
||||
QList<ProjectExplorer::ToolChain *> QnxToolChainFactory::autoDetect(
|
||||
const QList<ProjectExplorer::ToolChain *> &alreadyKnown)
|
||||
const QList<ProjectExplorer::ToolChain *> &alreadyKnown,
|
||||
const IDevice::Ptr &device)
|
||||
{
|
||||
Q_UNUSED(device);
|
||||
|
||||
QList<ToolChain *> tcs;
|
||||
QList<QnxConfiguration *> configurations =
|
||||
QnxConfigurationManager::instance()->configurations();
|
||||
|
@@ -71,7 +71,8 @@ public:
|
||||
QnxToolChainFactory();
|
||||
|
||||
QList<ProjectExplorer::ToolChain *> autoDetect(
|
||||
const QList<ProjectExplorer::ToolChain *> &alreadyKnown) override;
|
||||
const QList<ProjectExplorer::ToolChain *> &alreadyKnown,
|
||||
const ProjectExplorer::IDevice::Ptr &device) final;
|
||||
};
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
@@ -128,7 +128,7 @@ void WebAssemblyToolChain::registerToolChains()
|
||||
return f->supportedToolChainType() == Constants::WEBASSEMBLY_TOOLCHAIN_TYPEID;
|
||||
});
|
||||
QTC_ASSERT(factory, return);
|
||||
for (auto toolChain : factory->autoDetect({}))
|
||||
for (auto toolChain : factory->autoDetect({}, {}))
|
||||
ToolChainManager::registerToolChain(toolChain);
|
||||
|
||||
// Let kits pick up the new toolchains
|
||||
@@ -158,9 +158,11 @@ WebAssemblyToolChainFactory::WebAssemblyToolChainFactory()
|
||||
}
|
||||
|
||||
QList<ToolChain *> WebAssemblyToolChainFactory::autoDetect(
|
||||
const QList<ToolChain *> &alreadyKnown)
|
||||
const QList<ToolChain *> &alreadyKnown,
|
||||
const IDevice::Ptr &device)
|
||||
{
|
||||
Q_UNUSED(alreadyKnown)
|
||||
Q_UNUSED(device)
|
||||
|
||||
const FilePath sdk = WebAssemblyEmSdk::registeredEmSdk();
|
||||
if (!WebAssemblyEmSdk::isValid(sdk))
|
||||
|
@@ -58,7 +58,8 @@ public:
|
||||
WebAssemblyToolChainFactory();
|
||||
|
||||
QList<ProjectExplorer::ToolChain *> autoDetect(
|
||||
const QList<ProjectExplorer::ToolChain *> &alreadyKnown) override;
|
||||
const QList<ProjectExplorer::ToolChain *> &alreadyKnown,
|
||||
const ProjectExplorer::IDevice::Ptr &device) override;
|
||||
};
|
||||
|
||||
} // namespace Internal
|
||||
|
Reference in New Issue
Block a user