27#include <QElapsedTimer>
32#include "core/LogEntry.h"
50class MakeAstRunner :
public QObject {
54 explicit MakeAstRunner(QObject *parent =
nullptr);
55 ~MakeAstRunner()
override;
62 void run(
const QString &compilationDatabasePath,
63 const QString &sourceFilePath,
64 const QString &outputFilePath,
65 const QString &makeAstBinary = QString());
94 void error(
const QString &errorMessage);
104 void onProcessFinished(
int exitCode, QProcess::ExitStatus exitStatus);
105 void onProcessError(QProcess::ProcessError
error);
106 void onProcessStdOut();
107 void onProcessStdErr();
111 QString sourceFilePath_;
112 QString outputFilePath_;
113 QString clangResourceDir_;
114 QElapsedTimer elapsed_;
115 QString pendingStdout_;
116 QString pendingStderr_;
bool waitForFinished(int msecs=30000)
Waits for the process to finish.
void run(const QString &compilationDatabasePath, const QString &sourceFilePath, const QString &outputFilePath, const QString &makeAstBinary=QString())
Run make-ast tool for specified source file.
void error(const QString &errorMessage)
Emitted when an error occurs.
void astReady(const QString &astFilePath)
Emitted when make-ast completes successfully.
void terminate()
Attempts to terminate the process gracefully Sends SIGTERM on Unix/macOS, WM_CLOSE on Windows.
void kill()
Kills the process immediately Sends SIGKILL on Unix/macOS, forceful termination on Windows.
void setClangResourceDir(const QString &dir)
Set the Clang resource directory.
bool isRunning() const
Check if tool is currently running.
void progress(const QString &message)
Emitted with progress updates.
void logMessage(const LogEntry &entry)
Emitted when the tool produces log output.