Files
qt-creator/src/plugins/autotoolsprojectmanager/autotoolsbuildsystem.h
hjk b89baec2c1 ProjectExplorer: Promote CppProjectUpdaterInterface
... to ProjectExplorer::ProjectUpdaterInterface and generalize it
regarding language, but create a convience function for the C++
case, as that's the only user right now.

Also add the self-registering factory boilerplate and adapt all
buildsystems.

Change-Id: If928512609d41c25fad2aa58633c8bffabc4c48f
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2023-11-06 14:50:10 +00:00

49 lines
1.3 KiB
C++

// Copyright (C) 2016 Openismus GmbH.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#pragma once
#include <projectexplorer/buildsystem.h>
#include <memory>
namespace ProjectExplorer { class ProjectUpdater; }
namespace AutotoolsProjectManager::Internal {
class MakefileParserThread;
class AutotoolsBuildSystem final : public ProjectExplorer::BuildSystem
{
public:
explicit AutotoolsBuildSystem(ProjectExplorer::Target *target);
~AutotoolsBuildSystem() final;
private:
void triggerParsing() final;
QString name() const final { return QLatin1String("autotools"); }
/**
* Is invoked when the makefile parsing by m_makefileParserThread has
* been finished. Adds all sources and files into the project tree and
* takes care listen to file changes for Makefile.am and configure.ac
* files.
*/
void makefileParsingFinished();
/**
* This function is in charge of the code completion.
*/
void updateCppCodeModel();
/// Return value for AutotoolsProject::files()
QStringList m_files;
/// Responsible for parsing the makefiles asynchronously in a thread
std::unique_ptr<MakefileParserThread> m_makefileParserThread;
ProjectExplorer::ProjectUpdater *m_cppCodeModelUpdater = nullptr;
};
} // AutotoolsProjectManager::Internal