aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qmakeprojectmanager/qmakeproject.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/qmakeprojectmanager/qmakeproject.h')
-rw-r--r--src/plugins/qmakeprojectmanager/qmakeproject.h128
1 files changed, 75 insertions, 53 deletions
diff --git a/src/plugins/qmakeprojectmanager/qmakeproject.h b/src/plugins/qmakeprojectmanager/qmakeproject.h
index 3c1b4f1ba6f..8c138e54994 100644
--- a/src/plugins/qmakeprojectmanager/qmakeproject.h
+++ b/src/plugins/qmakeprojectmanager/qmakeproject.h
@@ -59,15 +59,75 @@ public:
explicit QmakeProject(const Utils::FilePath &proFile);
~QmakeProject() final;
- QmakeProFile *rootProFile() const;
-
ProjectExplorer::Tasks projectIssues(const ProjectExplorer::Kit *k) const final;
- QmakeProFileNode *rootProjectNode() const final;
+ void configureAsExampleProject() final;
+
+ ProjectExplorer::ProjectImporter *projectImporter() const final;
+
+protected:
+ RestoreResult fromMap(const QVariantMap &map, QString *errorMessage) final;
+
+private:
+ ProjectExplorer::DeploymentKnowledge deploymentKnowledge() const override;
+
+ mutable ProjectExplorer::ProjectImporter *m_projectImporter = nullptr;
+};
+
+// FIXME: This export here is only there to appease the current version
+// of the appman plugin. This _will_ go away, one way or the other.
+class QMAKEPROJECTMANAGER_EXPORT QmakeBuildSystem : public ProjectExplorer::BuildSystem
+{
+ Q_OBJECT
+
+public:
+ explicit QmakeBuildSystem(QmakeBuildConfiguration *bc);
+ ~QmakeBuildSystem();
+
+ bool supportsAction(ProjectExplorer::Node *context,
+ ProjectExplorer::ProjectAction action,
+ const ProjectExplorer::Node *node) const override;
+
+ bool addFiles(ProjectExplorer::Node *context,
+ const QStringList &filePaths,
+ QStringList *notAdded = nullptr) override;
+ ProjectExplorer::RemovedFilesFromProject removeFiles(ProjectExplorer::Node *context,
+ const QStringList &filePaths,
+ QStringList *notRemoved = nullptr) override;
+ bool deleteFiles(ProjectExplorer::Node *context,
+ const QStringList &filePaths) override;
+ bool canRenameFile(ProjectExplorer::Node *context,
+ const QString &filePath, const QString &newFilePath) override;
+ bool renameFile(ProjectExplorer::Node *context,
+ const QString &filePath, const QString &newFilePath) override;
+ bool addDependencies(ProjectExplorer::Node *context,
+ const QStringList &dependencies) override;
+ void triggerParsing() final;
QStringList filesGeneratedFrom(const QString &file) const final;
+ QVariant additionalData(Core::Id id) const final;
+
+ void asyncUpdate();
+ void buildFinished(bool success);
+ void activeTargetWasChanged(ProjectExplorer::Target *);
+
+ QString executableFor(const QmakeProFile *file);
+
+ void updateCppCodeModel();
+ void updateQmlJSCodeModel();
+
+ static bool equalFileList(const QStringList &a, const QStringList &b);
+
+ void updateBuildSystemData();
+ void collectData(const QmakeProFile *file, ProjectExplorer::DeploymentData &deploymentData);
+ void collectApplicationData(const QmakeProFile *file,
+ ProjectExplorer::DeploymentData &deploymentData);
+ void collectLibraryData(const QmakeProFile *file,
+ ProjectExplorer::DeploymentData &deploymentData);
+ void startAsyncTimer(QmakeProFile::AsyncUpdateDelay delay);
- static void notifyChanged(const Utils::FilePath &name);
+ void warnOnToolChainMismatch(const QmakeProFile *pro) const;
+ void testToolChain(ProjectExplorer::ToolChain *tc, const Utils::FilePath &path) const;
/// \internal
QtSupport::ProFileReader *createProFileReader(const QmakeProFile *qmakeProFile);
@@ -81,8 +141,8 @@ public:
void destroyProFileReader(QtSupport::ProFileReader *reader);
/// \internal
- void scheduleAsyncUpdate(QmakeProFile *file,
- QmakeProFile::AsyncUpdateDelay delay = QmakeProFile::ParseLater);
+ void scheduleAsyncUpdateFile(QmakeProFile *file,
+ QmakeProFile::AsyncUpdateDelay delay = QmakeProFile::ParseLater);
/// \internal
void incrementPendingEvaluateFutures();
/// \internal
@@ -95,56 +155,19 @@ public:
void watchFolders(const QStringList &l, QmakePriFile *file);
void unwatchFolders(const QStringList &l, QmakePriFile *file);
- void configureAsExampleProject() final;
-
- void emitBuildDirectoryInitialized();
static void proFileParseError(const QString &errorMessage);
- ProjectExplorer::ProjectImporter *projectImporter() const final;
-
enum AsyncUpdateState { Base, AsyncFullUpdatePending, AsyncPartialUpdatePending, AsyncUpdateInProgress, ShuttingDown };
AsyncUpdateState asyncUpdateState() const;
- QString mapProFilePathToTarget(const Utils::FilePath &proFilePath);
-
- QVariant additionalData(Core::Id id, const ProjectExplorer::Target *target) const final;
+ QmakeProFile *rootProFile() const;
-signals:
- void proFileUpdated(QmakeProjectManager::QmakeProFile *pro, bool, bool);
- void buildDirectoryInitialized();
+ void notifyChanged(const Utils::FilePath &name);
public:
- void scheduleAsyncUpdate(QmakeProFile::AsyncUpdateDelay delay = QmakeProFile::ParseLater);
- void scheduleAsyncUpdateLater() { scheduleAsyncUpdate(); }
-
-protected:
- RestoreResult fromMap(const QVariantMap &map, QString *errorMessage) final;
-
-private:
- ProjectExplorer::DeploymentKnowledge deploymentKnowledge() const override;
-
- void asyncUpdate();
- void buildFinished(bool success);
- void activeTargetWasChanged();
-
- QString executableFor(const QmakeProFile *file);
-
- void updateCppCodeModel();
- void updateQmlJSCodeModel();
-
- static bool equalFileList(const QStringList &a, const QStringList &b);
-
- void updateBuildSystemData();
- void collectData(const QmakeProFile *file, ProjectExplorer::DeploymentData &deploymentData);
- void collectApplicationData(const QmakeProFile *file,
- ProjectExplorer::DeploymentData &deploymentData);
- void collectLibraryData(const QmakeProFile *file,
- ProjectExplorer::DeploymentData &deploymentData);
- void startAsyncTimer(QmakeProFile::AsyncUpdateDelay delay);
- bool matchesKit(const ProjectExplorer::Kit *kit);
-
- void warnOnToolChainMismatch(const QmakeProFile *pro) const;
- void testToolChain(ProjectExplorer::ToolChain *tc, const Utils::FilePath &path) const;
+ void scheduleUpdateAll(QmakeProFile::AsyncUpdateDelay delay);
+ void scheduleUpdateAllLater() { scheduleUpdateAll(QmakeProFile::ParseLater); }
+ void scheduleUpdateAllNowOrLater();
mutable QSet<const QPair<Utils::FilePath, Utils::FilePath>> m_toolChainWarnings;
@@ -164,7 +187,7 @@ private:
QString m_qmakeSysroot;
QTimer m_asyncUpdateTimer;
- QFutureInterface<void> *m_asyncUpdateFutureInterface = nullptr;
+ QFutureInterface<void> m_asyncUpdateFutureInterface;
int m_pendingEvaluateFuturesCount = 0;
AsyncUpdateState m_asyncUpdateState = Base;
bool m_cancelEvaluate = false;
@@ -174,10 +197,9 @@ private:
Internal::CentralizedFolderWatcher *m_centralizedFolderWatcher = nullptr;
- ProjectExplorer::Target *m_activeTarget = nullptr;
- mutable ProjectExplorer::ProjectImporter *m_projectImporter = nullptr;
-
- ParseGuard m_guard;
+ ProjectExplorer::BuildSystem::ParseGuard m_guard;
+ QmakeBuildConfiguration *m_buildConfiguration = nullptr;
+ bool m_firstParseNeeded = true;
};
} // namespace QmakeProjectManager