diff --git a/src/plugins/clangcodemodel/CMakeLists.txt b/src/plugins/clangcodemodel/CMakeLists.txt index 243a330efad..e52b2258573 100644 --- a/src/plugins/clangcodemodel/CMakeLists.txt +++ b/src/plugins/clangcodemodel/CMakeLists.txt @@ -12,7 +12,7 @@ add_qtc_plugin(ClangCodeModel SOURCES clangactivationsequencecontextprocessor.cpp clangactivationsequencecontextprocessor.h clangactivationsequenceprocessor.cpp clangactivationsequenceprocessor.h - clangcodemodelplugin.cpp clangcodemodelplugin.h + clangcodemodelplugin.cpp clangcodemodeltr.h clangcompletioncontextanalyzer.cpp clangcompletioncontextanalyzer.h clangconstants.h @@ -35,7 +35,6 @@ add_qtc_plugin(ClangCodeModel clangtextmark.cpp clangtextmark.h clangutils.cpp clangutils.h tasktimers.cpp tasktimers.h - EXPLICIT_MOC clangcodemodelplugin.h ) extend_qtc_plugin(ClangCodeModel diff --git a/src/plugins/clangcodemodel/clangcodemodel.qbs b/src/plugins/clangcodemodel/clangcodemodel.qbs index 16e4d00035e..a92e628a234 100644 --- a/src/plugins/clangcodemodel/clangcodemodel.qbs +++ b/src/plugins/clangcodemodel/clangcodemodel.qbs @@ -26,7 +26,6 @@ QtcPlugin { "clangactivationsequenceprocessor.cpp", "clangactivationsequenceprocessor.h", "clangcodemodelplugin.cpp", - "clangcodemodelplugin.h", "clangcodemodeltr.h", "clangcompletioncontextanalyzer.cpp", "clangcompletioncontextanalyzer.h", diff --git a/src/plugins/clangcodemodel/clangcodemodelplugin.cpp b/src/plugins/clangcodemodel/clangcodemodelplugin.cpp index 4b68d80ce8e..cecdcf67c37 100644 --- a/src/plugins/clangcodemodel/clangcodemodelplugin.cpp +++ b/src/plugins/clangcodemodel/clangcodemodelplugin.cpp @@ -1,8 +1,6 @@ // Copyright (C) 2016 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 -#include "clangcodemodelplugin.h" - #include "clangcodemodeltr.h" #include "clangconstants.h" #include "clangmodelmanagersupport.h" @@ -23,6 +21,8 @@ #include #include +#include + #include #include #include @@ -37,39 +37,34 @@ #include #include +#include #include #include +#include + using namespace Core; using namespace ProjectExplorer; using namespace Utils; namespace ClangCodeModel::Internal { -void ClangCodeModelPlugin::generateCompilationDB() +class ClangCodeModelPlugin final: public ExtensionSystem::IPlugin { - using namespace CppEditor; + Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "ClangCodeModel.json") - Target *target = ProjectManager::startupTarget(); - if (!target) - return; +public: + ~ClangCodeModelPlugin() final; + void initialize() final; - const auto projectInfo = CppModelManager::projectInfo(target->project()); - if (!projectInfo) - return; - FilePath baseDir = projectInfo->buildRoot(); - if (baseDir == target->project()->projectDirectory()) - baseDir = TemporaryDirectory::masterDirectoryFilePath(); +private: + void generateCompilationDB(); + void createCompilationDBAction(); - QFuture task - = Utils::asyncRun(&Internal::generateCompilationDB, ProjectInfoList{projectInfo}, - baseDir, CompilationDbPurpose::Project, - warningsConfigForProject(target->project()), - globalClangOptions(), - FilePath()); - ProgressManager::addTask(task, Tr::tr("Generating Compilation DB"), "generate compilation db"); - m_generatorWatcher.setFuture(task); -} + Utils::ParameterAction *m_generateCompilationDBAction = nullptr; + QFutureWatcher m_generatorWatcher; +}; ClangCodeModelPlugin::~ClangCodeModelPlugin() { @@ -104,6 +99,31 @@ void ClangCodeModelPlugin::initialize() #endif } +void ClangCodeModelPlugin::generateCompilationDB() +{ + using namespace CppEditor; + + Target *target = ProjectManager::startupTarget(); + if (!target) + return; + + const auto projectInfo = CppModelManager::projectInfo(target->project()); + if (!projectInfo) + return; + FilePath baseDir = projectInfo->buildRoot(); + if (baseDir == target->project()->projectDirectory()) + baseDir = TemporaryDirectory::masterDirectoryFilePath(); + + QFuture task + = Utils::asyncRun(&Internal::generateCompilationDB, ProjectInfoList{projectInfo}, + baseDir, CompilationDbPurpose::Project, + warningsConfigForProject(target->project()), + globalClangOptions(), + FilePath()); + ProgressManager::addTask(task, Tr::tr("Generating Compilation DB"), "generate compilation db"); + m_generatorWatcher.setFuture(task); +} + void ClangCodeModelPlugin::createCompilationDBAction() { // generate compile_commands.json @@ -179,3 +199,5 @@ void ClangCodeModelPlugin::createCompilationDBAction() } } // namespace ClangCodeModel::Internal + +#include "clangcodemodelplugin.moc" diff --git a/src/plugins/clangcodemodel/clangcodemodelplugin.h b/src/plugins/clangcodemodel/clangcodemodelplugin.h deleted file mode 100644 index d0456257f2d..00000000000 --- a/src/plugins/clangcodemodel/clangcodemodelplugin.h +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -#pragma once - -#include "clangutils.h" - -#include - -#include - -#include - -namespace ClangCodeModel::Internal { - -class ClangCodeModelPlugin final: public ExtensionSystem::IPlugin -{ - Q_OBJECT - Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "ClangCodeModel.json") - -public: - ~ClangCodeModelPlugin() override; - void initialize() override; - -private: - void generateCompilationDB(); - void createCompilationDBAction(); - - Utils::ParameterAction *m_generateCompilationDBAction = nullptr; - QFutureWatcher m_generatorWatcher; -}; - -} // ClangCodeModel::Internal