diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp index f1cc03ee48f..5cc6cfffb4f 100644 --- a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp @@ -27,6 +27,7 @@ #include #include +#include #include #include #include @@ -48,6 +49,36 @@ using namespace Utils; namespace CMakeProjectManager::Internal { +class CMakeManager final : public QObject +{ +public: + CMakeManager(); + +private: + void updateCmakeActions(Node *node); + void clearCMakeCache(BuildSystem *buildSystem); + void runCMake(BuildSystem *buildSystem); + void runCMakeWithProfiling(BuildSystem *buildSystem); + void rescanProject(BuildSystem *buildSystem); + void buildFileContextMenu(); + void buildFile(Node *node = nullptr); + void updateBuildFileAction(); + void enableBuildFileMenus(Node *node); + void reloadCMakePresets(); + + QAction *m_runCMakeAction; + QAction *m_clearCMakeCacheAction; + QAction *m_runCMakeActionContextMenu; + QAction *m_rescanProjectAction; + QAction *m_buildFileContextMenu; + QAction *m_reloadCMakePresetsAction; + Utils::ParameterAction *m_buildFileAction; + QAction *m_cmakeProfilerAction; + QAction *m_cmakeDebuggerAction; + QAction *m_cmakeDebuggerSeparator; + bool m_canDebugCMake = false; +}; + CMakeManager::CMakeManager() { namespace PEC = ProjectExplorer::Constants; @@ -411,4 +442,9 @@ void CMakeManager::buildFileContextMenu() buildFile(node); } +void setupCMakeManager() +{ + static CMakeManager theCMakeManager; +} + } // CMakeProjectManager::Internal diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.h b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.h index 2004538b58d..ba3a025f130 100644 --- a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.h +++ b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.h @@ -3,48 +3,8 @@ #pragma once -#include +namespace CMakeProjectManager::Internal { -namespace Utils { class ParameterAction; } +void setupCMakeManager(); -QT_BEGIN_NAMESPACE -class QAction; -QT_END_NAMESPACE - -namespace CMakeProjectManager { -namespace Internal { - -class CMakeManager : public QObject -{ - Q_OBJECT - -public: - CMakeManager(); - -private: - void updateCmakeActions(ProjectExplorer::Node *node); - void clearCMakeCache(ProjectExplorer::BuildSystem *buildSystem); - void runCMake(ProjectExplorer::BuildSystem *buildSystem); - void runCMakeWithProfiling(ProjectExplorer::BuildSystem *buildSystem); - void rescanProject(ProjectExplorer::BuildSystem *buildSystem); - void buildFileContextMenu(); - void buildFile(ProjectExplorer::Node *node = nullptr); - void updateBuildFileAction(); - void enableBuildFileMenus(ProjectExplorer::Node *node); - void reloadCMakePresets(); - - QAction *m_runCMakeAction; - QAction *m_clearCMakeCacheAction; - QAction *m_runCMakeActionContextMenu; - QAction *m_rescanProjectAction; - QAction *m_buildFileContextMenu; - QAction *m_reloadCMakePresetsAction; - Utils::ParameterAction *m_buildFileAction; - QAction *m_cmakeProfilerAction; - QAction *m_cmakeDebuggerAction; - QAction *m_cmakeDebuggerSeparator; - bool m_canDebugCMake = false; -}; - -} // namespace Internal -} // namespace CMakeProjectManager +} // CMakeProjectManager::Internal diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectplugin.cpp b/src/plugins/cmakeprojectmanager/cmakeprojectplugin.cpp index 071f75b230b..5c9d1348050 100644 --- a/src/plugins/cmakeprojectmanager/cmakeprojectplugin.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeprojectplugin.cpp @@ -57,7 +57,6 @@ public: CMakeSettingsPage settingsPage; - CMakeManager manager; CMakeBuildStepFactory buildStepFactory; CMakeBuildConfigurationFactory buildConfigFactory; CMakeEditorFactory editorFactor; @@ -82,6 +81,8 @@ class CMakeProjectPlugin final : public ExtensionSystem::IPlugin { d = new CMakeProjectPluginPrivate; + setupCMakeManager(); + #ifdef WITH_TESTS addTestCreator(createCMakeConfigTest); addTestCreator(createCMakeParserTest);