diff options
38 files changed, 166 insertions, 98 deletions
diff --git a/src/plugins/android/androidconfigurations.cpp b/src/plugins/android/androidconfigurations.cpp index ea0b88a627..812928811b 100644 --- a/src/plugins/android/androidconfigurations.cpp +++ b/src/plugins/android/androidconfigurations.cpp @@ -1200,8 +1200,8 @@ static bool equalKits(Kit *a, Kit *b) { if (QtSupport::QtKitInformation::qtVersion(a) != QtSupport::QtKitInformation::qtVersion(b)) return false; - ToolChain *atc = ToolChainKitInformation::toolChain(a); - ToolChain *btc = ToolChainKitInformation::toolChain(b); + ToolChain *atc = ToolChainKitInformation::toolChain(a, ToolChain::Language::Cxx); + ToolChain *btc = ToolChainKitInformation::toolChain(b, ToolChain::Language::Cxx); if (atc == btc) return true; if (!atc || atc->typeId() != Constants::ANDROID_TOOLCHAIN_ID) @@ -1267,7 +1267,7 @@ void AndroidConfigurations::updateAutomaticKitList() continue; // Update code for 3.0 beta, which shipped with a bug for the debugger settings - ToolChain *tc =ToolChainKitInformation::toolChain(k); + ToolChain *tc = ToolChainKitInformation::toolChain(k, ToolChain::Language::Cxx); if (tc && Debugger::DebuggerKitInformation::debuggerCommand(k) != tc->suggestedDebugger()) { Debugger::DebuggerItem debugger; debugger.setCommand(tc->suggestedDebugger()); @@ -1341,7 +1341,7 @@ void AndroidConfigurations::updateAutomaticKitList() newKits.removeAt(j); existingKits.at(i)->makeSticky(); existingKits.removeAt(i); - ToolChainKitInformation::setToolChain(existingKit, ToolChainKitInformation::toolChain(newKit)); + ToolChainKitInformation::setToolChain(existingKit, ToolChainKitInformation::toolChain(newKit, ToolChain::Language::Cxx)); KitManager::deleteKit(newKit); j = newKits.count(); } @@ -1349,7 +1349,7 @@ void AndroidConfigurations::updateAutomaticKitList() } foreach (Kit *k, existingKits) { - ToolChain *tc = ToolChainKitInformation::toolChain(k); + ToolChain *tc = ToolChainKitInformation::toolChain(k, ToolChain::Language::Cxx); QtSupport::BaseQtVersion *qtVersion = QtSupport::QtKitInformation::qtVersion(k); if (tc && tc->typeId() == Constants::ANDROID_TOOLCHAIN_ID && tc->isValid() @@ -1362,7 +1362,7 @@ void AndroidConfigurations::updateAutomaticKitList() } foreach (Kit *kit, newKits) { - AndroidToolChain *tc = static_cast<AndroidToolChain *>(ToolChainKitInformation::toolChain(kit)); + AndroidToolChain *tc = static_cast<AndroidToolChain *>(ToolChainKitInformation::toolChain(kit, ToolChain::Language::Cxx)); AndroidQtVersion *qt = static_cast<AndroidQtVersion *>(QtSupport::QtKitInformation::qtVersion(kit)); kit->setUnexpandedDisplayName(tr("Android for %1 (GCC %2, Qt %3)") .arg(qt->targetArch()) diff --git a/src/plugins/android/androiddeployconfiguration.cpp b/src/plugins/android/androiddeployconfiguration.cpp index 8000f3584a..af6ed21830 100644 --- a/src/plugins/android/androiddeployconfiguration.cpp +++ b/src/plugins/android/androiddeployconfiguration.cpp @@ -114,7 +114,7 @@ QList<Core::Id> AndroidDeployConfigurationFactory::availableCreationIds(Target * if (!parent->project()->supportsKit(parent->kit())) return ids; - ToolChain *tc = ToolChainKitInformation::toolChain(parent->kit()); + ToolChain *tc = ToolChainKitInformation::toolChain(parent->kit(), ToolChain::Language::Cxx); if (!tc || tc->targetAbi().osFlavor() != Abi::AndroidLinuxFlavor) return ids; diff --git a/src/plugins/android/androiddeployqtstep.cpp b/src/plugins/android/androiddeployqtstep.cpp index a06f261a54..da413ec15f 100644 --- a/src/plugins/android/androiddeployqtstep.cpp +++ b/src/plugins/android/androiddeployqtstep.cpp @@ -176,7 +176,7 @@ bool AndroidDeployQtStep::init(QList<const BuildStep *> &earlierSteps) m_libdir = QLatin1String("lib"); if (info.cpuAbi.contains(QLatin1String("arm64-v8a")) || info.cpuAbi.contains(QLatin1String("x86_64"))) { - ProjectExplorer::ToolChain *tc = ProjectExplorer::ToolChainKitInformation::toolChain(target()->kit()); + ProjectExplorer::ToolChain *tc = ProjectExplorer::ToolChainKitInformation::toolChain(target()->kit(), ToolChain::Language::Cxx); if (tc && tc->targetAbi().wordWidth() == 64) { m_appProcessBinaries << QLatin1String("/system/bin/app_process64"); m_libdir += QLatin1String("64"); diff --git a/src/plugins/android/androidgdbserverkitinformation.cpp b/src/plugins/android/androidgdbserverkitinformation.cpp index 030bdcb780..09cc13704d 100644 --- a/src/plugins/android/androidgdbserverkitinformation.cpp +++ b/src/plugins/android/androidgdbserverkitinformation.cpp @@ -82,7 +82,7 @@ Core::Id AndroidGdbServerKitInformation::id() bool AndroidGdbServerKitInformation::isAndroidKit(const Kit *kit) { QtSupport::BaseQtVersion *qt = QtSupport::QtKitInformation::qtVersion(kit); - ToolChain *tc = ToolChainKitInformation::toolChain(kit); + ToolChain *tc = ToolChainKitInformation::toolChain(kit, ToolChain::Language::Cxx); if (qt && tc) return qt->type() == QLatin1String(Constants::ANDROIDQT) && tc->typeId() == Constants::ANDROID_TOOLCHAIN_ID; @@ -102,7 +102,7 @@ void AndroidGdbServerKitInformation::setGdbSever(Kit *kit, const FileName &gdbSe FileName AndroidGdbServerKitInformation::autoDetect(const Kit *kit) { - ToolChain *tc = ToolChainKitInformation::toolChain(kit); + ToolChain *tc = ToolChainKitInformation::toolChain(kit, ToolChain::Language::Cxx); if (!tc || tc->typeId() != Constants::ANDROID_TOOLCHAIN_ID) return FileName(); auto atc = static_cast<AndroidToolChain *>(tc); diff --git a/src/plugins/autotest/autotestunittests.cpp b/src/plugins/autotest/autotestunittests.cpp index 2628c0698d..d06e916eda 100644 --- a/src/plugins/autotest/autotestunittests.cpp +++ b/src/plugins/autotest/autotestunittests.cpp @@ -68,7 +68,8 @@ void AutoTestUnitTests::initTestCase() m_isQt4 = qtVersion->qtVersionString().startsWith(QLatin1Char('4')); else QSKIP("Could not figure out which Qt version is used for default kit."); - const ToolChain * const toolchain = ToolChainKitInformation::toolChain(allKits.first()); + const ToolChain * const toolchain = ToolChainKitInformation::toolChain(allKits.first(), + ToolChain::Language::Cxx); if (!toolchain) QSKIP("This test requires that there is a kit with a toolchain."); diff --git a/src/plugins/autotoolsprojectmanager/makestep.cpp b/src/plugins/autotoolsprojectmanager/makestep.cpp index bc8aacdcb0..c929ed248b 100644 --- a/src/plugins/autotoolsprojectmanager/makestep.cpp +++ b/src/plugins/autotoolsprojectmanager/makestep.cpp @@ -120,11 +120,11 @@ bool MakeStep::init(QList<const BuildStep *> &earlierSteps) if (!bc) emit addTask(Task::buildConfigurationMissingTask()); - ToolChain *tc = ToolChainKitInformation::toolChain(target()->kit()); - if (!tc) + QList<ToolChain *> tcList = ToolChainKitInformation::toolChains(target()->kit()); + if (tcList.isEmpty()) emit addTask(Task::compilerMissingTask()); - if (!tc || !bc) { + if (tcList.isEmpty() || !bc) { emitFaultyConfigurationMessage(); return false; } @@ -140,7 +140,7 @@ bool MakeStep::init(QList<const BuildStep *> &earlierSteps) Utils::Environment::setupEnglishOutput(&env); pp->setEnvironment(env); pp->setWorkingDirectory(bc->buildDirectory().toString()); - pp->setCommand(tc ? tc->makeCommand(bc->environment()) : QLatin1String("make")); + pp->setCommand(tcList.at(0)->makeCommand(bc->environment())); pp->setArguments(arguments); pp->resolveAll(); @@ -255,9 +255,9 @@ void MakeStepConfigWidget::updateDetails() BuildConfiguration *bc = m_makeStep->buildConfiguration(); if (!bc) bc = m_makeStep->target()->activeBuildConfiguration(); - ToolChain *tc = ToolChainKitInformation::toolChain(m_makeStep->target()->kit()); + QList<ToolChain *> tcList = ToolChainKitInformation::toolChains(m_makeStep->target()->kit()); - if (tc) { + if (!tcList.isEmpty()) { QString arguments = Utils::QtcProcess::joinArgs(m_makeStep->m_buildTargets); Utils::QtcProcess::addArgs(&arguments, m_makeStep->additionalArguments()); @@ -265,7 +265,7 @@ void MakeStepConfigWidget::updateDetails() param.setMacroExpander(bc->macroExpander()); param.setEnvironment(bc->environment()); param.setWorkingDirectory(bc->buildDirectory().toString()); - param.setCommand(tc->makeCommand(bc->environment())); + param.setCommand(tcList.at(0)->makeCommand(bc->environment())); param.setArguments(arguments); m_summaryText = param.summary(displayName()); } else { diff --git a/src/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp b/src/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp index 1987ae8679..f55aa29e39 100644 --- a/src/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp +++ b/src/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp @@ -83,7 +83,7 @@ ClangStaticAnalyzerRunControl::ClangStaticAnalyzerRunControl( QTC_ASSERT(buildConfiguration, return); m_environment = buildConfiguration->environment(); - ToolChain *toolChain = ToolChainKitInformation::toolChain(target->kit()); + ToolChain *toolChain = ToolChainKitInformation::toolChain(target->kit(), ToolChain::Language::Cxx); QTC_ASSERT(toolChain, return); m_extraToolChainInfo.wordWidth = toolChain->targetAbi().wordWidth(); m_extraToolChainInfo.targetTriple = toolChain->originalTargetTriple(); @@ -427,7 +427,7 @@ static QDebug operator<<(QDebug debug, const AnalyzeUnits &analyzeUnits) static Core::Id toolchainType(ProjectExplorer::RunConfiguration *runConfiguration) { QTC_ASSERT(runConfiguration, return Core::Id()); - return ToolChainKitInformation::toolChain(runConfiguration->target()->kit())->typeId(); + return ToolChainKitInformation::toolChain(runConfiguration->target()->kit(), ToolChain::Language::Cxx)->typeId(); } void ClangStaticAnalyzerRunControl::start() diff --git a/src/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrolfactory.cpp b/src/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrolfactory.cpp index 7c12ec697e..5ec5b8fd98 100644 --- a/src/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrolfactory.cpp +++ b/src/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrolfactory.cpp @@ -73,7 +73,7 @@ bool ClangStaticAnalyzerRunControlFactory::canRun(RunConfiguration *runConfigura QTC_ASSERT(target, return false); Kit *kit = target->kit(); QTC_ASSERT(kit, return false); - ToolChain *toolChain = ToolChainKitInformation::toolChain(kit); + ToolChain *toolChain = ToolChainKitInformation::toolChain(kit, ToolChain::Language::Cxx); return toolChain; } diff --git a/src/plugins/clangstaticanalyzer/clangstaticanalyzerunittests.cpp b/src/plugins/clangstaticanalyzer/clangstaticanalyzerunittests.cpp index c40572d9ad..5ea6c9cef3 100644 --- a/src/plugins/clangstaticanalyzer/clangstaticanalyzerunittests.cpp +++ b/src/plugins/clangstaticanalyzer/clangstaticanalyzerunittests.cpp @@ -62,7 +62,8 @@ void ClangStaticAnalyzerUnitTests::initTestCase() const QList<Kit *> allKits = KitManager::kits(); if (allKits.count() != 1) QSKIP("This test requires exactly one kit to be present"); - const ToolChain * const toolchain = ToolChainKitInformation::toolChain(allKits.first()); + const ToolChain * const toolchain = ToolChainKitInformation::toolChain(allKits.first(), + ToolChain::Language::Cxx); if (!toolchain) QSKIP("This test requires that there is a kit with a toolchain."); bool hasClangExecutable; diff --git a/src/plugins/cmakeprojectmanager/cmakekitinformation.cpp b/src/plugins/cmakeprojectmanager/cmakekitinformation.cpp index 0f21fe8062..182b563966 100644 --- a/src/plugins/cmakeprojectmanager/cmakekitinformation.cpp +++ b/src/plugins/cmakeprojectmanager/cmakekitinformation.cpp @@ -187,7 +187,7 @@ QVariant CMakeGeneratorKitInformation::defaultValue(const Kit *k) const } if (Utils::HostOsInfo::isWindowsHost()) { // *sigh* Windows with its zoo of incompatible stuff again... - ToolChain *tc = ToolChainKitInformation::toolChain(k); + ToolChain *tc = ToolChainKitInformation::toolChain(k, ToolChain::Language::Cxx); if (tc && tc->typeId() == ProjectExplorer::Constants::MINGW_TOOLCHAIN_TYPEID) { if (it == known.constEnd()) it = std::find_if(known.constBegin(), known.constEnd(), @@ -343,7 +343,7 @@ QVariant CMakeConfigurationKitInformation::defaultValue(const Kit *k) const QList<Task> CMakeConfigurationKitInformation::validate(const Kit *k) const { const QtSupport::BaseQtVersion *const version = QtSupport::QtKitInformation::qtVersion(k); - const ToolChain *const tc = ToolChainKitInformation::toolChain(k); + const ToolChain *const tc = ToolChainKitInformation::toolChain(k, ToolChain::Language::Cxx); const CMakeConfig config = configuration(k); QByteArray qmakePath; diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.cpp b/src/plugins/cmakeprojectmanager/cmakeproject.cpp index bb09ec627a..389f73d3de 100644 --- a/src/plugins/cmakeprojectmanager/cmakeproject.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeproject.cpp @@ -251,7 +251,7 @@ void CMakeProject::parseCMakeOutput() createGeneratedCodeModelSupport(); - ToolChain *tc = ProjectExplorer::ToolChainKitInformation::toolChain(k); + ToolChain *tc = ProjectExplorer::ToolChainKitInformation::toolChain(k, ToolChain::Language::Cxx); if (!tc) { emit fileListChanged(); return; diff --git a/src/plugins/cpptools/projectpartbuilder.cpp b/src/plugins/cpptools/projectpartbuilder.cpp index d14de454e9..138facc92a 100644 --- a/src/plugins/cpptools/projectpartbuilder.cpp +++ b/src/plugins/cpptools/projectpartbuilder.cpp @@ -273,7 +273,7 @@ QString targetTriple(ProjectExplorer::Project *project, const Core::Id &toolchai if (project) { if (Target *target = project->activeTarget()) { - if (ToolChain *toolChain = ToolChainKitInformation::toolChain(target->kit())) + if (ToolChain *toolChain = ToolChainKitInformation::toolChain(target->kit(), ToolChain::Language::Cxx)) return toolChain->originalTargetTriple(); } } @@ -361,7 +361,7 @@ void ProjectPartBuilder::createProjectPart(const QVector<ProjectFile> &theSource QTC_ASSERT(part->project, return); if (ProjectExplorer::Target *activeTarget = part->project->activeTarget()) { if (ProjectExplorer::Kit *kit = activeTarget->kit()) { - if (ProjectExplorer::ToolChain *toolChain = ProjectExplorer::ToolChainKitInformation::toolChain(kit)) { + if (ProjectExplorer::ToolChain *toolChain = ProjectExplorer::ToolChainKitInformation::toolChain(kit, ProjectExplorer::ToolChain::Language::Cxx)) { const QStringList flags = languageVersion >= ProjectPart::CXX98 ? m_cxxFlags : m_cFlags; evaluateProjectPartToolchain(part.data(), diff --git a/src/plugins/debugger/debuggerdialogs.cpp b/src/plugins/debugger/debuggerdialogs.cpp index 00849f84e9..b3b43a1eef 100644 --- a/src/plugins/debugger/debuggerdialogs.cpp +++ b/src/plugins/debugger/debuggerdialogs.cpp @@ -110,7 +110,7 @@ DebuggerKitChooser::DebuggerKitChooser(Mode mode, QWidget *parent) if (!DebuggerKitInformation::isValidDebugger(k)) return false; if (m_mode == LocalDebugging) { - const ToolChain *tc = ToolChainKitInformation::toolChain(k); + const ToolChain *tc = ToolChainKitInformation::toolChain(k, ToolChain::Language::Cxx); return tc && tc->targetAbi().os() == m_hostAbi.os(); } return true; diff --git a/src/plugins/debugger/debuggerkitinformation.cpp b/src/plugins/debugger/debuggerkitinformation.cpp index 6c075d4a4f..50abf170b8 100644 --- a/src/plugins/debugger/debuggerkitinformation.cpp +++ b/src/plugins/debugger/debuggerkitinformation.cpp @@ -57,7 +57,7 @@ DebuggerKitInformation::DebuggerKitInformation() QVariant DebuggerKitInformation::defaultValue(const Kit *k) const { - ToolChain *tc = ToolChainKitInformation::toolChain(k); + ToolChain *tc = ToolChainKitInformation::toolChain(k, ToolChain::Language::Cxx); if (!tc) return QVariant(); @@ -87,7 +87,7 @@ void DebuggerKitInformation::setup(Kit *k) // </valuemap> const QVariant rawId = k->value(DebuggerKitInformation::id()); - const ToolChain *tc = ToolChainKitInformation::toolChain(k); + const ToolChain *tc = ToolChainKitInformation::toolChain(k, ToolChain::Language::Cxx); // Get the best of the available debugger matching the kit's toolchain. // The general idea is to find an item that exactly matches what @@ -237,7 +237,7 @@ static unsigned debuggerConfigurationErrors(const Kit *k) else if (!fi.isExecutable()) result |= DebuggerNotExecutable; - const ToolChain *tc = ToolChainKitInformation::toolChain(k); + const ToolChain *tc = ToolChainKitInformation::toolChain(k, ToolChain::Language::Cxx); if (tc && item->matchTarget(tc->targetAbi()) == DebuggerItem::DoesNotMatch) { // currently restricting the check to desktop devices, may be extended to all device types const IDevice::ConstPtr device = DeviceKitInformation::device(k); diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp index 8ef07a30bf..cfe9a637aa 100644 --- a/src/plugins/debugger/debuggerplugin.cpp +++ b/src/plugins/debugger/debuggerplugin.cpp @@ -568,7 +568,7 @@ static std::function<bool(const Kit *)> cdbMatcher(char wordWidth = 0) return false; } if (wordWidth) { - const ToolChain *tc = ToolChainKitInformation::toolChain(k); + const ToolChain *tc = ToolChainKitInformation::toolChain(k, ToolChain::Language::Cxx); return tc && wordWidth == tc->targetAbi().wordWidth(); } return true; @@ -1103,14 +1103,14 @@ static Kit *guessKitFromParameters(const DebuggerRunParameters &rp) if (!abis.isEmpty()) { // Try exact abis. kit = KitManager::find(KitMatcher([abis](const Kit *k) -> bool { - if (const ToolChain *tc = ToolChainKitInformation::toolChain(k)) + if (const ToolChain *tc = ToolChainKitInformation::toolChain(k, ToolChain::Language::Cxx)) return abis.contains(tc->targetAbi()) && DebuggerKitInformation::isValidDebugger(k); return false; })); if (!kit) { // Or something compatible. kit = KitManager::find(KitMatcher([abis](const Kit *k) -> bool { - if (const ToolChain *tc = ToolChainKitInformation::toolChain(k)) + if (const ToolChain *tc = ToolChainKitInformation::toolChain(k, ToolChain::Language::Cxx)) foreach (const Abi &a, abis) if (a.isCompatibleWith(tc->targetAbi()) && DebuggerKitInformation::isValidDebugger(k)) return true; @@ -2081,7 +2081,7 @@ DebuggerRunControl *DebuggerPluginPrivate::attachToRunningProcess(Kit *kit, } bool isWindows = false; - if (const ToolChain *tc = ToolChainKitInformation::toolChain(kit)) + if (const ToolChain *tc = ToolChainKitInformation::toolChain(kit, ToolChain::Language::Cxx)) isWindows = tc->targetAbi().os() == Abi::WindowsOS; if (isWindows && isWinProcessBeingDebugged(process.pid)) { AsynchronousMessageBox::warning(tr("Process Already Under Debugger Control"), diff --git a/src/plugins/debugger/debuggerruncontrol.cpp b/src/plugins/debugger/debuggerruncontrol.cpp index bc1f28c6de..40559d81d5 100644 --- a/src/plugins/debugger/debuggerruncontrol.cpp +++ b/src/plugins/debugger/debuggerruncontrol.cpp @@ -366,7 +366,7 @@ static DebuggerRunControl *doCreate(DebuggerRunParameters rp, RunConfiguration * } } - if (ToolChain *tc = ToolChainKitInformation::toolChain(kit)) + if (ToolChain *tc = ToolChainKitInformation::toolChain(kit, ToolChain::Language::Cxx)) rp.toolChainAbi = tc->targetAbi(); if (false) { diff --git a/src/plugins/genericprojectmanager/genericmakestep.cpp b/src/plugins/genericprojectmanager/genericmakestep.cpp index c12ba79dd7..fbbe741134 100644 --- a/src/plugins/genericprojectmanager/genericmakestep.cpp +++ b/src/plugins/genericprojectmanager/genericmakestep.cpp @@ -95,7 +95,7 @@ bool GenericMakeStep::init(QList<const BuildStep *> &earlierSteps) if (!bc) emit addTask(Task::buildConfigurationMissingTask()); - ToolChain *tc = ToolChainKitInformation::toolChain(target()->kit()); + ToolChain *tc = ToolChainKitInformation::toolChain(target()->kit(), ToolChain::Language::Cxx); if (!tc) emit addTask(Task::compilerMissingTask()); @@ -170,7 +170,7 @@ QString GenericMakeStep::makeCommand(const Utils::Environment &environment) cons { QString command = m_makeCommand; if (command.isEmpty()) { - ToolChain *tc = ToolChainKitInformation::toolChain(target()->kit()); + ToolChain *tc = ToolChainKitInformation::toolChain(target()->kit(), ToolChain::Language::Cxx); if (tc) command = tc->makeCommand(environment); else diff --git a/src/plugins/ios/iosbuildstep.cpp b/src/plugins/ios/iosbuildstep.cpp index 88ec09744f..a633c108f5 100644 --- a/src/plugins/ios/iosbuildstep.cpp +++ b/src/plugins/ios/iosbuildstep.cpp @@ -98,7 +98,7 @@ bool IosBuildStep::init(QList<const BuildStep *> &earlierSteps) if (!bc) emit addTask(Task::buildConfigurationMissingTask()); - ToolChain *tc = ToolChainKitInformation::toolChain(target()->kit()); + ToolChain *tc = ToolChainKitInformation::toolChain(target()->kit(), ToolChain::Language::Cxx); if (!tc) emit addTask(Task::compilerMissingTask()); @@ -170,7 +170,7 @@ QStringList IosBuildStep::defaultArguments() const { QStringList res; Kit *kit = target()->kit(); - ToolChain *tc = ToolChainKitInformation::toolChain(kit); + ToolChain *tc = ToolChainKitInformation::toolChain(kit, ToolChain::Language::Cxx); switch (target()->activeBuildConfiguration()->buildType()) { case BuildConfiguration::Debug : res << QLatin1String("-configuration") << QLatin1String("Debug"); diff --git a/src/plugins/ios/iosconfigurations.cpp b/src/plugins/ios/iosconfigurations.cpp index c212b3a0f6..99829102f0 100644 --- a/src/plugins/ios/iosconfigurations.cpp +++ b/src/plugins/ios/iosconfigurations.cpp @@ -238,7 +238,7 @@ void IosConfigurations::updateAutomaticKitList() // we do not compare the sdk (thus automatically upgrading it in place if a // new Xcode is used). Change? return DeviceTypeKitInformation::deviceTypeId(kit) == pDeviceType - && ToolChainKitInformation::toolChain(kit) == pToolchain + && ToolChainKitInformation::toolChain(kit, ToolChain::Language::Cxx) == pToolchain && QtKitInformation::qtVersion(kit) == qtVersion; }); QTC_ASSERT(!resultingKits.contains(kit), continue); diff --git a/src/plugins/projectexplorer/kitinformation.cpp b/src/plugins/projectexplorer/kitinformation.cpp index 7ecb304bc7..095662eea5 100644 --- a/src/plugins/projectexplorer/kitinformation.cpp +++ b/src/plugins/projectexplorer/kitinformation.cpp @@ -144,28 +144,20 @@ ToolChainKitInformation::ToolChainKitInformation() QVariant ToolChainKitInformation::defaultValue(const Kit *k) const { Q_UNUSED(k); - QList<ToolChain *> tcList = ToolChainManager::toolChains(); - if (tcList.isEmpty()) - return QString(); - - Abi abi = Abi::hostAbi(); - - ToolChain *tc = Utils::findOr(tcList, tcList.first(), - Utils::equal(&ToolChain::targetAbi, abi)); - - return tc->id(); + return defaultValue(); } QList<Task> ToolChainKitInformation::validate(const Kit *k) const { QList<Task> result; - const ToolChain* toolchain = toolChain(k); - if (!toolchain) { + const QList<ToolChain*> tcList = toolChains(k); + if (tcList.isEmpty()) { result << Task(Task::Error, ToolChainKitInformation::msgNoToolChainInTarget(), Utils::FileName(), -1, Core::Id(Constants::TASK_CATEGORY_BUILDSYSTEM)); } else { - result << toolchain->validateKit(k); + foreach (ToolChain *tc, tcList) + result << tc->validateKit(k); } return result; } @@ -173,12 +165,13 @@ QList<Task> ToolChainKitInformation::validate(const Kit *k) const void ToolChainKitInformation::fix(Kit *k) { QTC_ASSERT(ToolChainManager::isLoaded(), return); - if (toolChain(k)) - return; - - qWarning("No tool chain set from kit \"%s\".", - qPrintable(k->displayName())); - setToolChain(k, 0); // make sure to clear out no longer known tool chains + foreach (ToolChain::Language l, ToolChain::allLanguages()) { + if (!toolChain(k, l)) { + qWarning("No tool chain set from kit \"%s\".", + qPrintable(k->displayName())); + setToolChain(k, l, nullptr); // make sure to clear out no longer known tool chains + } + } } void ToolChainKitInformation::setup(Kit *k) @@ -206,19 +199,19 @@ KitConfigWidget *ToolChainKitInformation::createConfigWidget(Kit *k) const QString ToolChainKitInformation::displayNamePostfix(const Kit *k) const { - ToolChain *tc = toolChain(k); + ToolChain *tc = toolChain(k, ToolChain::Language::Cxx); return tc ? tc->displayName() : QString(); } KitInformation::ItemList ToolChainKitInformation::toUserOutput(const Kit *k) const { - ToolChain *tc = toolChain(k); + ToolChain *tc = toolChain(k, ToolChain::Language::Cxx); return ItemList() << qMakePair(tr("Compiler"), tc ? tc->displayName() : tr("None")); } void ToolChainKitInformation::addToEnvironment(const Kit *k, Utils::Environment &env) const { - ToolChain *tc = toolChain(k); + ToolChain *tc = toolChain(k, ToolChain::Language::Cxx); if (tc) tc->addToEnvironment(env); } @@ -228,13 +221,13 @@ void ToolChainKitInformation::addToMacroExpander(Kit *kit, Utils::MacroExpander // FIXME: Use better strings expander->registerVariable("Compiler:Name", tr("Compiler"), [this, kit]() -> QString { - const ToolChain *tc = toolChain(kit); + const ToolChain *tc = toolChain(kit, ToolChain::Language::Cxx); return tc ? tc->displayName() : tr("None"); }); expander->registerVariable("Compiler:Executable", tr("Path to the compiler executable"), [this, kit]() -> QString { - const ToolChain *tc = toolChain(kit); + const ToolChain *tc = toolChain(kit, ToolChain::Language::Cxx); return tc ? tc->compilerCommand().toString() : QString(); }); } @@ -242,7 +235,7 @@ void ToolChainKitInformation::addToMacroExpander(Kit *kit, Utils::MacroExpander IOutputParser *ToolChainKitInformation::createOutputParser(const Kit *k) const { - ToolChain *tc = toolChain(k); + ToolChain *tc = toolChain(k, ToolChain::Language::Cxx); if (tc) return tc->outputParser(); return 0; @@ -253,17 +246,41 @@ Core::Id ToolChainKitInformation::id() return "PE.Profile.ToolChain"; } -ToolChain *ToolChainKitInformation::toolChain(const Kit *k) +ToolChain *ToolChainKitInformation::toolChain(const Kit *k, ToolChain::Language l) { QTC_ASSERT(ToolChainManager::isLoaded(), return 0); if (!k) return 0; - return ToolChainManager::findToolChain(k->value(ToolChainKitInformation::id()).toByteArray()); + QVariantMap value = readValue(k); + const QByteArray id = value.value(ToolChain::languageId(l), QByteArray()).toByteArray(); + return ToolChainManager::findToolChain(id); +} + +QList<ToolChain *> ToolChainKitInformation::toolChains(const Kit *k) +{ + const QVariantMap value = readValue(k); + const QList<ToolChain *> tcList + = Utils::transform(ToolChain::allLanguages().toList(), + [&value](ToolChain::Language l) -> ToolChain * { + return ToolChainManager::findToolChain(value.value(ToolChain::languageId(l)).toByteArray()); + }); + return Utils::filtered(tcList, [](ToolChain *tc) { return tc; }); } void ToolChainKitInformation::setToolChain(Kit *k, ToolChain *tc) { - k->setValue(ToolChainKitInformation::id(), tc ? QString::fromUtf8(tc->id()) : QString()); + QTC_ASSERT(tc, return); + setToolChain(k, tc->language(), tc); +} + +void ToolChainKitInformation::setToolChain(Kit *k, ToolChain::Language l, ToolChain *tc) +{ + if (l == ToolChain::Language::None) + return; + + QVariantMap result = readValue(k); + result.insert(ToolChain::languageId(l), tc ? tc->id() : QByteArray()); + k->setValue(id(), result); } QString ToolChainKitInformation::msgNoToolChainInTarget() @@ -271,6 +288,33 @@ QString ToolChainKitInformation::msgNoToolChainInTarget() return tr("No compiler set in kit."); } +QVariantMap ToolChainKitInformation::readValue(const Kit *k) +{ + QVariant value = k->value(ToolChainKitInformation::id()); + if (value.isNull()) + value = defaultValue(); + else if (value.type() == QVariant::String) { + // Legacy value: Convert... + QVariantMap tmp; + tmp.insert(ToolChain::languageDisplayName(ToolChain::Language::Cxx), value.toString()); + value = tmp; + } + return value.toMap(); +} + +QVariant ToolChainKitInformation::defaultValue() +{ + Abi abi = Abi::hostAbi(); + QList<ToolChain *> tcList = Utils::filtered(ToolChainManager::toolChains(), + Utils::equal(&ToolChain::targetAbi, abi)); + QVariantMap result; + foreach (ToolChain::Language l, ToolChain::allLanguages()) { + ToolChain *tc = Utils::findOrDefault(tcList, Utils::equal(&ToolChain::language, l)); + result.insert(ToolChain::languageId(l), tc ? tc->id() : QByteArray()); + } + return result; +} + void ToolChainKitInformation::kitsWereLoaded() { foreach (Kit *k, KitManager::kits()) @@ -284,7 +328,7 @@ void ToolChainKitInformation::kitsWereLoaded() void ToolChainKitInformation::toolChainUpdated(ToolChain *tc) { - auto matcher = KitMatcher([tc, this](const Kit *k) { return toolChain(k) == tc; }); + auto matcher = KitMatcher([tc, this](const Kit *k) { return toolChain(k, ToolChain::Language::Cxx) == tc; }); foreach (Kit *k, KitManager::matchingKits(matcher)) notifyAboutUpdate(k); } diff --git a/src/plugins/projectexplorer/kitinformation.h b/src/plugins/projectexplorer/kitinformation.h index 49054fcfb0..79c7a82a6d 100644 --- a/src/plugins/projectexplorer/kitinformation.h +++ b/src/plugins/projectexplorer/kitinformation.h @@ -25,17 +25,17 @@ #pragma once +#include "devicesupport/idevice.h" #include "kitmanager.h" #include "kit.h" +#include "toolchain.h" -#include "devicesupport/idevice.h" #include <utils/environment.h> #include <QVariant> namespace ProjectExplorer { -class ToolChain; class KitConfigWidget; // -------------------------------------------------------------------------- @@ -92,12 +92,16 @@ public: IOutputParser *createOutputParser(const Kit *k) const override; static Core::Id id(); - static ToolChain *toolChain(const Kit *k); + static ToolChain *toolChain(const Kit *k, ToolChain::Language l); + static QList<ToolChain *> toolChains(const Kit *k); static void setToolChain(Kit *k, ToolChain *tc); + static void setToolChain(Kit *k, ToolChain::Language l, ToolChain *tc); static QString msgNoToolChainInTarget(); private: + static QVariantMap readValue(const Kit *k); + static QVariant defaultValue(); void kitsWereLoaded(); void toolChainUpdated(ProjectExplorer::ToolChain *tc); void toolChainRemoved(ProjectExplorer::ToolChain *tc); diff --git a/src/plugins/projectexplorer/kitinformationconfigwidget.cpp b/src/plugins/projectexplorer/kitinformationconfigwidget.cpp index 64a8f26712..7601d9f705 100644 --- a/src/plugins/projectexplorer/kitinformationconfigwidget.cpp +++ b/src/plugins/projectexplorer/kitinformationconfigwidget.cpp @@ -171,7 +171,7 @@ void ToolChainInformationConfigWidget::refresh() m_comboBox->setEnabled(m_comboBox->count() > 1 && !m_isReadOnly); - const int index = indexOf(ToolChainKitInformation::toolChain(m_kit)); + const int index = indexOf(ToolChainKitInformation::toolChain(m_kit, ToolChain::Language::Cxx)); m_comboBox->setCurrentIndex(index); m_ignoreChanges = false; } @@ -203,7 +203,7 @@ void ToolChainInformationConfigWidget::currentToolChainChanged(int idx) return; const QByteArray id = m_comboBox->itemData(idx).toByteArray(); - ToolChainKitInformation::setToolChain(m_kit, ToolChainManager::findToolChain(id)); + ToolChainKitInformation::setToolChain(m_kit, ToolChain::Language::Cxx, ToolChainManager::findToolChain(id)); } int ToolChainInformationConfigWidget::indexOf(const ToolChain *tc) diff --git a/src/plugins/projectexplorer/runconfiguration.cpp b/src/plugins/projectexplorer/runconfiguration.cpp index c40dc54593..3839b42cfb 100644 --- a/src/plugins/projectexplorer/runconfiguration.cpp +++ b/src/plugins/projectexplorer/runconfiguration.cpp @@ -318,7 +318,7 @@ Abi RunConfiguration::abi() const BuildConfiguration *bc = target()->activeBuildConfiguration(); if (!bc) return Abi::hostAbi(); - ToolChain *tc = ToolChainKitInformation::toolChain(target()->kit()); + ToolChain *tc = ToolChainKitInformation::toolChain(target()->kit(), ToolChain::Language::Cxx); if (!tc) return Abi::hostAbi(); return tc->targetAbi(); diff --git a/src/plugins/projectexplorer/toolchain.cpp b/src/plugins/projectexplorer/toolchain.cpp index 4f59e76a35..1d0727083a 100644 --- a/src/plugins/projectexplorer/toolchain.cpp +++ b/src/plugins/projectexplorer/toolchain.cpp @@ -168,6 +168,19 @@ QString ToolChain::languageDisplayName(Language language) return QString(); } +QString ToolChain::languageId(ToolChain::Language l) +{ + switch (l) { + case Language::None: + return "None"; + case Language::C: + return "C"; + case Language::Cxx: + return "C++"; + }; + return QString(); +} + ToolChain::Language ToolChain::language() const { return d->m_language; diff --git a/src/plugins/projectexplorer/toolchain.h b/src/plugins/projectexplorer/toolchain.h index 2b0af1b02a..aea274474a 100644 --- a/src/plugins/projectexplorer/toolchain.h +++ b/src/plugins/projectexplorer/toolchain.h @@ -118,6 +118,7 @@ public: }; static const QSet<Language>& allLanguages(); static QString languageDisplayName(Language language); + static QString languageId(Language l); Language language() const; diff --git a/src/plugins/qbsprojectmanager/defaultpropertyprovider.cpp b/src/plugins/qbsprojectmanager/defaultpropertyprovider.cpp index 88273086bf..1ce5b066d6 100644 --- a/src/plugins/qbsprojectmanager/defaultpropertyprovider.cpp +++ b/src/plugins/qbsprojectmanager/defaultpropertyprovider.cpp @@ -179,7 +179,8 @@ QVariantMap DefaultPropertyProvider::autoGeneratedProperties(const ProjectExplor if (ProjectExplorer::SysRootKitInformation::hasSysRoot(k)) data.insert(QLatin1String(QBS_SYSROOT), sysroot); - ProjectExplorer::ToolChain *tc = ProjectExplorer::ToolChainKitInformation::toolChain(k); + ProjectExplorer::ToolChain *tc + = ProjectExplorer::ToolChainKitInformation::toolChain(k, ProjectExplorer::ToolChain::Language::Cxx); if (!tc) return data; diff --git a/src/plugins/qbsprojectmanager/qbsbuildconfiguration.cpp b/src/plugins/qbsprojectmanager/qbsbuildconfiguration.cpp index 2ce88634ba..f5c4f12642 100644 --- a/src/plugins/qbsprojectmanager/qbsbuildconfiguration.cpp +++ b/src/plugins/qbsprojectmanager/qbsbuildconfiguration.cpp @@ -134,7 +134,7 @@ Internal::QbsProject *QbsBuildConfiguration::project() const IOutputParser *QbsBuildConfiguration::createOutputParser() const { - ToolChain *tc = ToolChainKitInformation::toolChain(target()->kit()); + ToolChain *tc = ToolChainKitInformation::toolChain(target()->kit(), ToolChain::Language::Cxx); return tc ? tc->outputParser() : 0; } diff --git a/src/plugins/qmakeandroidsupport/androidpackageinstallationstep.cpp b/src/plugins/qmakeandroidsupport/androidpackageinstallationstep.cpp index 0644a3aca4..9cc262c414 100644 --- a/src/plugins/qmakeandroidsupport/androidpackageinstallationstep.cpp +++ b/src/plugins/qmakeandroidsupport/androidpackageinstallationstep.cpp @@ -64,7 +64,8 @@ bool AndroidPackageInstallationStep::init(QList<const BuildStep *> &earlierSteps dirPath = QDir::toNativeSeparators(dirPath); ProjectExplorer::ToolChain *tc - = ProjectExplorer::ToolChainKitInformation::toolChain(target()->kit()); + = ProjectExplorer::ToolChainKitInformation::toolChain(target()->kit(), + ProjectExplorer::ToolChain::Language::Cxx); ProjectExplorer::ProcessParameters *pp = processParameters(); pp->setMacroExpander(bc->macroExpander()); diff --git a/src/plugins/qmakeprojectmanager/librarydetailscontroller.cpp b/src/plugins/qmakeprojectmanager/librarydetailscontroller.cpp index 43398d1e40..695195eafe 100644 --- a/src/plugins/qmakeprojectmanager/librarydetailscontroller.cpp +++ b/src/plugins/qmakeprojectmanager/librarydetailscontroller.cpp @@ -72,7 +72,7 @@ LibraryDetailsController::LibraryDetailsController( const Project *project = SessionManager::projectForFile(Utils::FileName::fromString(proFile)); if (project && project->activeTarget()) { // if its tool chain is maemo behave the same as we would be on linux - ProjectExplorer::ToolChain *tc = ToolChainKitInformation::toolChain(project->activeTarget()->kit()); + ProjectExplorer::ToolChain *tc = ToolChainKitInformation::toolChain(project->activeTarget()->kit(), ToolChain::Language::Cxx); if (tc) { switch (tc->targetAbi().os()) { case Abi::WindowsOS: diff --git a/src/plugins/qmakeprojectmanager/makestep.cpp b/src/plugins/qmakeprojectmanager/makestep.cpp index 4a1e77e91a..b204926bf5 100644 --- a/src/plugins/qmakeprojectmanager/makestep.cpp +++ b/src/plugins/qmakeprojectmanager/makestep.cpp @@ -113,7 +113,7 @@ QString MakeStep::effectiveMakeCommand() const QString makeCmd = m_makeCmd; if (makeCmd.isEmpty()) { QmakeBuildConfiguration *bc = qmakeBuildConfiguration(); - ToolChain *tc = ToolChainKitInformation::toolChain(target()->kit()); + ToolChain *tc = ToolChainKitInformation::toolChain(target()->kit(), ToolChain::Language::Cxx); if (bc && tc) makeCmd = tc->makeCommand(bc->environment()); @@ -133,7 +133,7 @@ QVariantMap MakeStep::toMap() const QStringList MakeStep::automaticallyAddedArguments() const { - ToolChain *tc = ToolChainKitInformation::toolChain(target()->kit()); + ToolChain *tc = ToolChainKitInformation::toolChain(target()->kit(), ToolChain::Language::Cxx); if (!tc || tc->targetAbi().binaryFormat() == Abi::PEFormat) return QStringList(); return QStringList() << QLatin1String("-w") << QLatin1String("-r"); @@ -163,7 +163,7 @@ bool MakeStep::init(QList<const BuildStep *> &earlierSteps) if (!bc) emit addTask(Task::buildConfigurationMissingTask()); - ToolChain *tc = ToolChainKitInformation::toolChain(target()->kit()); + ToolChain *tc = ToolChainKitInformation::toolChain(target()->kit(), ToolChain::Language::Cxx); if (!tc) emit addTask(Task::compilerMissingTask()); @@ -392,7 +392,7 @@ MakeStepConfigWidget::~MakeStepConfigWidget() void MakeStepConfigWidget::updateDetails() { ToolChain *tc - = ToolChainKitInformation::toolChain(m_makeStep->target()->kit()); + = ToolChainKitInformation::toolChain(m_makeStep->target()->kit(), ToolChain::Language::Cxx); QmakeBuildConfiguration *bc = m_makeStep->qmakeBuildConfiguration(); if (!bc) bc = qobject_cast<QmakeBuildConfiguration *>(m_makeStep->target()->activeBuildConfiguration()); diff --git a/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp b/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp index 426d5cac31..2981f6e7eb 100644 --- a/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp +++ b/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp @@ -170,7 +170,7 @@ void QmakeBuildConfiguration::kitChanged() void QmakeBuildConfiguration::toolChainUpdated(ToolChain *tc) { - if (ToolChainKitInformation::toolChain(target()->kit()) == tc) + if (ToolChainKitInformation::toolChain(target()->kit(), ToolChain::Language::Cxx) == tc) emitProFileEvaluateNeeded(); } @@ -766,7 +766,7 @@ QmakeBuildConfiguration::LastKitState::LastKitState(Kit *k) m_sysroot(SysRootKitInformation::sysRoot(k).toString()), m_mkspec(QmakeKitInformation::mkspec(k).toString()) { - ToolChain *tc = ToolChainKitInformation::toolChain(k); + ToolChain *tc = ToolChainKitInformation::toolChain(k, ToolChain::Language::Cxx); m_toolchain = tc ? tc->id() : QByteArray(); } diff --git a/src/plugins/qmakeprojectmanager/qmakekitinformation.cpp b/src/plugins/qmakeprojectmanager/qmakekitinformation.cpp index d241c25514..79fb578658 100644 --- a/src/plugins/qmakeprojectmanager/qmakekitinformation.cpp +++ b/src/plugins/qmakeprojectmanager/qmakekitinformation.cpp @@ -76,7 +76,7 @@ void QmakeKitInformation::setup(Kit *k) if (spec.isEmpty()) spec = version->mkspec(); - ToolChain *tc = ToolChainKitInformation::toolChain(k); + ToolChain *tc = ToolChainKitInformation::toolChain(k, ToolChain::Language::Cxx); if (!tc || (!tc->suggestedMkspecList().empty() && !tc->suggestedMkspecList().contains(spec))) { ToolChain *possibleTc = 0; @@ -142,7 +142,7 @@ FileName QmakeKitInformation::defaultMkspec(const Kit *k) if (!version) // No version, so no qmake return FileName(); - return version->mkspecFor(ToolChainKitInformation::toolChain(k)); + return version->mkspecFor(ToolChainKitInformation::toolChain(k, ToolChain::Language::Cxx)); } } // namespace QmakeProjectManager diff --git a/src/plugins/qmakeprojectmanager/qmakeproject.cpp b/src/plugins/qmakeprojectmanager/qmakeproject.cpp index d286ca3720..396195199d 100644 --- a/src/plugins/qmakeprojectmanager/qmakeproject.cpp +++ b/src/plugins/qmakeprojectmanager/qmakeproject.cpp @@ -482,7 +482,7 @@ void QmakeProject::updateCppCodeModel() const QStringList cxxflags = pro->variableValue(CppFlagsVar); CppTools::ProjectPartBuilder::evaluateProjectPartToolchain(objcppPart.data(), - ToolChainKitInformation::toolChain(k), + ToolChainKitInformation::toolChain(k, ToolChain::Language::Cxx), cxxflags, SysRootKitInformation::sysRoot(k)); @@ -524,8 +524,8 @@ void QmakeProject::updateCppCodeModel() ProjectFile::CXXSource)); const QStringList cxxflags = pro->variableValue(CppFlagsVar); CppTools::ProjectPartBuilder::evaluateProjectPartToolchain( - cppPart.data(), ToolChainKitInformation::toolChain(k), cxxflags, - SysRootKitInformation::sysRoot(k)); + cppPart.data(), ToolChainKitInformation::toolChain(k, ToolChain::Language::Cxx), + cxxflags, SysRootKitInformation::sysRoot(k)); if (!cppPart->files.isEmpty()) { pinfo.appendProjectPart(cppPart); setProjectLanguage(ProjectExplorer::Constants::LANG_CXX, true); @@ -1440,7 +1440,7 @@ void QmakeProject::collectLibraryData(const QmakeProFileNode *node, DeploymentDa if (targetPath.isEmpty()) return; const Kit * const kit = activeTarget()->kit(); - const ToolChain * const toolchain = ToolChainKitInformation::toolChain(kit); + const ToolChain * const toolchain = ToolChainKitInformation::toolChain(kit, ToolChain::Language::Cxx); if (!toolchain) return; @@ -1536,7 +1536,7 @@ bool QmakeProject::matchesKit(const Kit *kit) QString QmakeProject::executableFor(const QmakeProFileNode *node) { const Kit * const kit = activeTarget()->kit(); - const ToolChain * const toolchain = ToolChainKitInformation::toolChain(kit); + const ToolChain * const toolchain = ToolChainKitInformation::toolChain(kit, ToolChain::Language::Cxx); if (!toolchain) return QString(); diff --git a/src/plugins/qmakeprojectmanager/qmakeprojectimporter.cpp b/src/plugins/qmakeprojectmanager/qmakeprojectimporter.cpp index 6db05fd109..9badaaa7e7 100644 --- a/src/plugins/qmakeprojectmanager/qmakeprojectimporter.cpp +++ b/src/plugins/qmakeprojectmanager/qmakeprojectimporter.cpp @@ -177,7 +177,7 @@ QList<BuildInfo *> QmakeProjectImporter::import(const FileName &importPath, bool foreach (Kit *k, KitManager::kits()) { BaseQtVersion *kitVersion = QtKitInformation::qtVersion(k); FileName kitSpec = QmakeKitInformation::mkspec(k); - ToolChain *tc = ToolChainKitInformation::toolChain(k); + ToolChain *tc = ToolChainKitInformation::toolChain(k, ToolChain::Language::Cxx); if (kitSpec.isEmpty() && kitVersion) kitSpec = kitVersion->mkspecFor(tc); QMakeStepConfig::TargetArchConfig kitTargetArch = QMakeStepConfig::NoArch; diff --git a/src/plugins/qmakeprojectmanager/qmakestep.cpp b/src/plugins/qmakeprojectmanager/qmakestep.cpp index f067018960..78e53ac0d9 100644 --- a/src/plugins/qmakeprojectmanager/qmakestep.cpp +++ b/src/plugins/qmakeprojectmanager/qmakestep.cpp @@ -161,7 +161,7 @@ QMakeStepConfig QMakeStep::deducedArguments() const ProjectExplorer::Kit *kit = target()->kit(); QMakeStepConfig config; ProjectExplorer::ToolChain *tc - = ProjectExplorer::ToolChainKitInformation::toolChain(kit); + = ProjectExplorer::ToolChainKitInformation::toolChain(kit, ToolChain::Language::Cxx); ProjectExplorer::Abi targetAbi; if (tc) targetAbi = tc->targetAbi(); diff --git a/src/plugins/qmldesigner/designercore/instances/puppetcreator.cpp b/src/plugins/qmldesigner/designercore/instances/puppetcreator.cpp index a11c50c26a..a8689a6e51 100644 --- a/src/plugins/qmldesigner/designercore/instances/puppetcreator.cpp +++ b/src/plugins/qmldesigner/designercore/instances/puppetcreator.cpp @@ -386,7 +386,9 @@ QString PuppetCreator::buildCommand() const Utils::Environment environment = Utils::Environment::systemEnvironment(); m_kit->addToEnvironment(environment); - ProjectExplorer::ToolChain *toolChain = ProjectExplorer::ToolChainKitInformation::toolChain(m_kit); + ProjectExplorer::ToolChain *toolChain + = ProjectExplorer::ToolChainKitInformation::toolChain(m_kit, + ProjectExplorer::ToolChain::Language::Cxx); if (toolChain) return toolChain->makeCommand(environment); diff --git a/src/plugins/qnx/qnxconfiguration.cpp b/src/plugins/qnx/qnxconfiguration.cpp index 6121d07ebe..0a8344f3ed 100644 --- a/src/plugins/qnx/qnxconfiguration.cpp +++ b/src/plugins/qnx/qnxconfiguration.cpp @@ -218,7 +218,7 @@ void QnxConfiguration::deactivate() foreach (Kit *kit, KitManager::kits()) { if (kit->isAutoDetected() && DeviceTypeKitInformation::deviceTypeId(kit) == Constants::QNX_QNX_OS_TYPE - && toolChainsToRemove.contains(ToolChainKitInformation::toolChain(kit))) + && toolChainsToRemove.contains(ToolChainKitInformation::toolChain(kit, ToolChain::Language::Cxx))) KitManager::deregisterKit(kit); } diff --git a/src/plugins/qtsupport/baseqtversion.cpp b/src/plugins/qtsupport/baseqtversion.cpp index 8f5ad2855a..5a75f89673 100644 --- a/src/plugins/qtsupport/baseqtversion.cpp +++ b/src/plugins/qtsupport/baseqtversion.cpp @@ -493,7 +493,7 @@ QList<Task> BaseQtVersion::validateKit(const Kit *k) FileName(), -1, ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM); } - ToolChain *tc = ToolChainKitInformation::toolChain(k); + ToolChain *tc = ToolChainKitInformation::toolChain(k, ToolChain::Language::Cxx); if (tc) { Abi targetAbi = tc->targetAbi(); bool fuzzyMatch = false; |