diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp index 79d3ed6d747..8d16cee12c0 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp @@ -159,11 +159,6 @@ void CMakeBuildConfiguration::maybeForceReparse() m_buildDirManager->maybeForceReparse(); } -BuildDirManager *CMakeBuildConfiguration::buildDirManager() const -{ - return m_buildDirManager; -} - bool CMakeBuildConfiguration::isParsing() const { return m_buildDirManager && m_buildDirManager->isParsing(); @@ -179,6 +174,37 @@ bool CMakeBuildConfiguration::persistCMakeState() return m_buildDirManager->persistCMakeState(); } +void CMakeBuildConfiguration::runCMake() +{ + if (!m_buildDirManager || m_buildDirManager->isParsing()) + return; + + m_buildDirManager->checkConfiguration(); + m_buildDirManager->forceReparse(); +} + +void CMakeBuildConfiguration::clearCache() +{ + if (m_buildDirManager) + m_buildDirManager->clearCache(); +} + +QList CMakeBuildConfiguration::buildTargets() const +{ + if (!m_buildDirManager || m_buildDirManager->isParsing()) + return QList(); + + return m_buildDirManager->buildTargets(); +} + +void CMakeBuildConfiguration::generateProjectTree(CMakeProjectNode *root) const +{ + if (!m_buildDirManager || m_buildDirManager->isParsing()) + return; + + return m_buildDirManager->generateProjectTree(root); +} + FileName CMakeBuildConfiguration::shadowBuildDirectory(const FileName &projectFilePath, const Kit *k, const QString &bcName, @@ -196,7 +222,7 @@ FileName CMakeBuildConfiguration::shadowBuildDirectory(const FileName &projectFi QList CMakeBuildConfiguration::completeCMakeConfiguration() const { - if (!m_buildDirManager && m_buildDirManager->isParsing()) + if (!m_buildDirManager || m_buildDirManager->isParsing()) return QList(); if (m_completeConfigurationCache.isEmpty()) @@ -234,7 +260,7 @@ QList CMakeBuildConfiguration::completeCMakeConfiguration void CMakeBuildConfiguration::setCurrentCMakeConfiguration(const QList &items) { - if (m_buildDirManager->isParsing()) + if (!m_buildDirManager || m_buildDirManager->isParsing()) return; const CMakeConfig newConfig = Utils::transform(items, [](const ConfigModel::DataItem &i) { diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.h b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.h index 37ec1aa4275..a4798cc1992 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.h +++ b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.h @@ -26,6 +26,7 @@ #pragma once #include "cmakeconfigitem.h" +#include "cmakeproject.h" #include "configmodel.h" #include @@ -70,13 +71,16 @@ public: QString error() const; QString warning() const; - BuildDirManager *buildDirManager() const; - bool isParsing() const; void maybeForceReparse(); void resetData(); bool persistCMakeState(); + void runCMake(); + void clearCache(); + + QList buildTargets() const; + void generateProjectTree(CMakeProjectNode *root) const; static Utils::FileName shadowBuildDirectory(const Utils::FileName &projectFilePath, const ProjectExplorer::Kit *k, diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.cpp b/src/plugins/cmakeprojectmanager/cmakeproject.cpp index 4e4e1cd8539..0737666457a 100644 --- a/src/plugins/cmakeprojectmanager/cmakeproject.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeproject.cpp @@ -25,7 +25,6 @@ #include "cmakeproject.h" -#include "builddirmanager.h" #include "cmakebuildconfiguration.h" #include "cmakekitinformation.h" #include "cmakeprojectconstants.h" @@ -201,10 +200,7 @@ void CMakeProject::updateProjectData() return; Kit *k = t->kit(); - BuildDirManager *bdm = cmakeBc->buildDirManager(); - QTC_ASSERT(bdm, return); - - bdm->generateProjectTree(static_cast(rootProjectNode())); + cmakeBc->generateProjectTree(static_cast(rootProjectNode())); updateApplicationAndDeploymentTargets(); updateTargetRunConfigurations(t); @@ -338,24 +334,17 @@ void CMakeProject::runCMake() if (activeTarget()) bc = qobject_cast(activeTarget()->activeBuildConfiguration()); - if (!bc) - return; - - BuildDirManager *bdm = bc->buildDirManager(); - if (bdm && !bdm->isParsing()) { - bdm->checkConfiguration(); - bdm->forceReparse(); - } + if (bc) + bc->runCMake(); } QList CMakeProject::buildTargets() const { - BuildDirManager *bdm = nullptr; - if (activeTarget() && activeTarget()->activeBuildConfiguration()) - bdm = static_cast(activeTarget()->activeBuildConfiguration())->buildDirManager(); - if (!bdm) - return QList(); - return bdm->buildTargets(); + CMakeBuildConfiguration *bc = nullptr; + if (activeTarget()) + bc = qobject_cast(activeTarget()->activeBuildConfiguration()); + + return bc ? bc->buildTargets() : QList(); } QStringList CMakeProject::buildTargetTitles(bool runnable) const diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp index 7181db157bc..41f811736af 100644 --- a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp @@ -117,7 +117,7 @@ void CMakeManager::clearCMakeCache(Project *project) if (!bc) return; - bc->buildDirManager()->clearCache(); + bc->clearCache(); } void CMakeManager::runCMake(Project *project)