diff options
Diffstat (limited to 'src/qdoc/qdoc/src/qdoc/clangcodeparser.h')
-rw-r--r-- | src/qdoc/qdoc/src/qdoc/clangcodeparser.h | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/src/qdoc/qdoc/src/qdoc/clangcodeparser.h b/src/qdoc/qdoc/src/qdoc/clangcodeparser.h index ea330c202..2318a048d 100644 --- a/src/qdoc/qdoc/src/qdoc/clangcodeparser.h +++ b/src/qdoc/qdoc/src/qdoc/clangcodeparser.h @@ -11,6 +11,8 @@ #include <QtCore/qtemporarydir.h> #include <QtCore/QStringList> +#include <optional> + typedef struct CXTranslationUnitImpl *CXTranslationUnit; QT_BEGIN_NAMESPACE @@ -20,10 +22,28 @@ struct ParsedCppFileIR { std::vector<TiedDocumentation> tied; }; +struct PCHFile { + QTemporaryDir dir; + QByteArray name; +}; + +std::optional<PCHFile> buildPCH( + QDocDatabase* qdb, + QString module_header, + const std::set<Config::HeaderFilePath>& all_headers, + const std::vector<QByteArray>& include_paths, + const QList<QByteArray>& defines +); + class ClangCodeParser : public CodeParser { public: - ClangCodeParser(Config&, const std::vector<QByteArray>& include_paths, const QList<QByteArray>& defines); + ClangCodeParser( + Config&, + const std::vector<QByteArray>& include_paths, + const QList<QByteArray>& defines, + std::optional<std::reference_wrapper<const PCHFile>> pch + ); ~ClangCodeParser() override = default; void initializeParser() override {} @@ -32,18 +52,16 @@ public: QStringList sourceFileNameFilter() override; void parseSourceFile(const Location &, const QString &, CppCodeParser&) override {} ParsedCppFileIR parse_cpp_file(const QString &filePath); - void buildPCH(QString module_header); Node *parseFnArg(const Location &location, const QString &fnSignature, const QString &idTag, QStringList context); private: std::set<Config::HeaderFilePath> m_allHeaders {}; // file name->path const std::vector<QByteArray>& m_includePaths; - QScopedPointer<QTemporaryDir> m_pchFileDir {}; - QByteArray m_pchName {}; QList<QByteArray> m_defines {}; std::vector<const char *> m_args {}; QStringList m_namespaceScope {}; QByteArray s_fn; + std::optional<std::reference_wrapper<const PCHFile>> m_pch; }; QT_END_NAMESPACE |