GenericProject: Make dependency on CppTools optional

Especially in the light of the language server, the generic project is
currently the project one can use for language servers that require a
"project workspace".

Makes it possibly to run Qt Creator with
"-noload CppTools" if you still want to use generic
projects with some other language.

Change-Id: Ib9059289a2db4c44c0c1060a02fcdafacb885fbd
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
This commit is contained in:
Eike Ziller
2019-08-29 11:34:13 +02:00
parent 3beab5c985
commit b6c2277146
15 changed files with 110 additions and 210 deletions

View File

@@ -25,6 +25,7 @@
#pragma once
#include "cppprojectupdaterinterface.h"
#include "cpptools_global.h"
#include "projectinfo.h"
@@ -35,7 +36,18 @@ namespace CppTools {
class ProjectInfo;
class CPPTOOLS_EXPORT CppProjectUpdater : public QObject
// registered in extensionsystem's object pool for plugins with weak dependency to CppTools
class CPPTOOLS_EXPORT CppProjectUpdaterFactory : public QObject
{
Q_OBJECT
public:
CppProjectUpdaterFactory();
// keep the namespace, for the type name in the invokeMethod call
Q_INVOKABLE CppTools::CppProjectUpdaterInterface *create();
};
class CPPTOOLS_EXPORT CppProjectUpdater : public QObject, public CppProjectUpdaterInterface
{
Q_OBJECT
@@ -43,8 +55,8 @@ public:
CppProjectUpdater();
~CppProjectUpdater() override;
void update(const ProjectExplorer::ProjectUpdateInfo &projectUpdateInfo);
void cancel();
void update(const ProjectExplorer::ProjectUpdateInfo &projectUpdateInfo) override;
void cancel() override;
private:
void cancelAndWaitForFinished();