forked from qt-creator/qt-creator
CMake: Move BuildDirManager from the project into the buildconfiguration
Change-Id: I90126ff22dd394eba4145db142b3914d211af476 Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
This commit is contained in:
@@ -27,7 +27,6 @@
|
||||
|
||||
#include "cmake_global.h"
|
||||
#include "cmakeprojectnodes.h"
|
||||
#include "configmodel.h"
|
||||
|
||||
#include <projectexplorer/extracompiler.h>
|
||||
#include <projectexplorer/project.h>
|
||||
@@ -104,39 +103,27 @@ public:
|
||||
|
||||
CMakeBuildTarget buildTargetForTitle(const QString &title);
|
||||
|
||||
bool isProjectFile(const Utils::FileName &fileName);
|
||||
|
||||
bool needsConfiguration() const override;
|
||||
bool requiresTargetPanel() const override;
|
||||
|
||||
bool supportsKit(ProjectExplorer::Kit *k, QString *errorMessage = 0) const override;
|
||||
|
||||
void runCMake();
|
||||
bool isParsing() const;
|
||||
|
||||
QList<ConfigModel::DataItem> currentCMakeConfiguration() const;
|
||||
void setCurrentCMakeConfiguration(const QList<ConfigModel::DataItem> &items);
|
||||
|
||||
signals:
|
||||
/// emitted when parsing starts:
|
||||
/// emitted when cmake is running:
|
||||
void parsingStarted();
|
||||
/// emitted after parsing
|
||||
void buildDirectoryDataAvailable(ProjectExplorer::BuildConfiguration *bc);
|
||||
|
||||
protected:
|
||||
RestoreResult fromMap(const QVariantMap &map, QString *errorMessage) override;
|
||||
bool setupTarget(ProjectExplorer::Target *t) override;
|
||||
|
||||
// called by CMakeBuildSettingsWidget
|
||||
void changeBuildDirectory(Internal::CMakeBuildConfiguration *bc, const QString &newBuildDirectory);
|
||||
|
||||
private:
|
||||
void handleKitChanges();
|
||||
void handleActiveTargetChanged();
|
||||
void handleActiveBuildConfigurationChanged();
|
||||
void handleParsingStarted();
|
||||
void parseCMakeOutput();
|
||||
|
||||
void activeTargetHasChanged(ProjectExplorer::Target *target);
|
||||
void changeActiveBuildConfiguration(ProjectExplorer::BuildConfiguration*);
|
||||
|
||||
void updateRunConfigurations();
|
||||
|
||||
void buildTree(Internal::CMakeProjectNode *rootNode, QList<ProjectExplorer::FileNode *> list);
|
||||
@@ -150,13 +137,14 @@ private:
|
||||
bool extractCXXFlagsFromMake(const CMakeBuildTarget &buildTarget, QHash<QString, QStringList> &cache);
|
||||
bool extractCXXFlagsFromNinja(const CMakeBuildTarget &buildTarget, QHash<QString, QStringList> &cache);
|
||||
|
||||
ProjectExplorer::Target *m_activeTarget = 0;
|
||||
Internal::BuildDirManager *m_buildDirManager = 0;
|
||||
ProjectExplorer::Target *m_connectedTarget = nullptr;
|
||||
|
||||
// TODO probably need a CMake specific node structure
|
||||
QList<CMakeBuildTarget> m_buildTargets;
|
||||
QFuture<void> m_codeModelFuture;
|
||||
QList<ProjectExplorer::ExtraCompiler *> m_extraCompilers;
|
||||
|
||||
friend class Internal::CMakeBuildConfiguration;
|
||||
};
|
||||
|
||||
} // namespace CMakeProjectManager
|
||||
|
||||
Reference in New Issue
Block a user