From 4ce9ec5d63e5690d4402ec56a46ed99a60eaa6d3 Mon Sep 17 00:00:00 2001 From: Nikolai Kosjar Date: Fri, 4 Jan 2019 12:35:28 +0100 Subject: CppTools: De-duplicate code for CppProjectUpdater Centralize gathering the kit, toolchains and qt version. Change-Id: I6bd586ac7925e2ee556fd119f1dab096cd500e41 Reviewed-by: Christian Kandeler --- src/plugins/cmakeprojectmanager/cmakeproject.cpp | 31 +++++++++--------------- 1 file changed, 11 insertions(+), 20 deletions(-) (limited to 'src/plugins/cmakeprojectmanager/cmakeproject.cpp') diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.cpp b/src/plugins/cmakeprojectmanager/cmakeproject.cpp index e281dd2edfa..398fe84440e 100644 --- a/src/plugins/cmakeprojectmanager/cmakeproject.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeproject.cpp @@ -46,6 +46,7 @@ #include #include #include +#include #include #include @@ -264,9 +265,6 @@ void CMakeProject::updateProjectData(CMakeBuildConfiguration *bc) QTC_ASSERT(bc == aBc, return); QTC_ASSERT(m_treeScanner.isFinished() && !m_buildDirManager.isParsing(), return); - Target *t = bc->target(); - Kit *k = t->kit(); - bc->setBuildTargets(m_buildDirManager.takeBuildTargets()); bc->setConfigurationFromCMake(m_buildDirManager.takeCMakeConfiguration()); @@ -276,6 +274,7 @@ void CMakeProject::updateProjectData(CMakeBuildConfiguration *bc) setRootProjectNode(std::move(newRoot)); } + Target *t = bc->target(); t->setApplicationTargets(bc->appTargets()); t->setDeploymentData(bc->deploymentData()); @@ -283,30 +282,22 @@ void CMakeProject::updateProjectData(CMakeBuildConfiguration *bc) createGeneratedCodeModelSupport(); - ToolChain *tcC = ToolChainKitInformation::toolChain(k, ProjectExplorer::Constants::C_LANGUAGE_ID); - ToolChain *tcCxx = ToolChainKitInformation::toolChain(k, ProjectExplorer::Constants::CXX_LANGUAGE_ID); - - CppTools::ProjectPart::QtVersion activeQtVersion = CppTools::ProjectPart::NoQt; - if (QtSupport::BaseQtVersion *qtVersion = QtSupport::QtKitInformation::qtVersion(k)) { - if (qtVersion->qtVersion() < QtSupport::QtVersionNumber(5,0,0)) - activeQtVersion = CppTools::ProjectPart::Qt4; - else - activeQtVersion = CppTools::ProjectPart::Qt5; - } + QtSupport::CppKitInfo kitInfo(this); + QTC_ASSERT(kitInfo.isValid(), return); CppTools::RawProjectParts rpps; m_buildDirManager.updateCodeModel(rpps); for (CppTools::RawProjectPart &rpp : rpps) { - // TODO: Set the Qt version only if target actually depends on Qt. - rpp.setQtVersion(activeQtVersion); - if (tcCxx) - rpp.setFlagsForCxx({tcCxx, rpp.flagsForCxx.commandLineFlags}); - if (tcC) - rpp.setFlagsForC({tcC, rpp.flagsForC.commandLineFlags}); + rpp.setQtVersion(kitInfo.projectPartQtVersion); // TODO: Check if project actually uses Qt. + if (kitInfo.cxxToolChain) + rpp.setFlagsForCxx({kitInfo.cxxToolChain, rpp.flagsForCxx.commandLineFlags}); + if (kitInfo.cToolChain) + rpp.setFlagsForC({kitInfo.cToolChain, rpp.flagsForC.commandLineFlags}); } - m_cppCodeModelUpdater->update({this, tcC, tcCxx, k, rpps}); + m_cppCodeModelUpdater->update( + {this, kitInfo.cToolChain, kitInfo.cxxToolChain, kitInfo.kit, rpps}); updateQmlJSCodeModel(); -- cgit v1.2.3