1// Copyright (C) 2021 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
3#ifndef MANIFESTWRITER_H
4#define MANIFESTWRITER_H
5
6#include <QtCore/qlist.h>
7#include <QtCore/qset.h>
8#include <QtCore/qstring.h>
9
10QT_BEGIN_NAMESPACE
11
12class ExampleNode;
13class QDocDatabase;
14class QXmlStreamWriter;
15class ManifestWriter
16{
17 struct ManifestMetaFilter
18 {
19 QSet<QString> m_names {};
20 QSet<QString> m_attributes {};
21 QSet<QString> m_tags {};
22 };
23
24public:
25 ManifestWriter();
26 void generateManifestFiles();
27 void generateExampleManifestFile();
28 void readManifestMetaContent();
29 QString retrieveExampleInstallationPath(const ExampleNode *example) const;
30
31private:
32 QString m_manifestDir {};
33 QString m_examplesPath {};
34 QString m_outputDirectory {};
35 QString m_project {};
36 QDocDatabase *m_qdb { nullptr };
37 QList<ManifestMetaFilter> m_manifestMetaContent {};
38 QStringList m_exampleCategories {};
39
40 template <typename F>
41 void processManifestMetaContent(const QString &fullName, F matchFunc);
42};
43
44QT_END_NAMESPACE
45
46#endif // MANIFESTWRITER_H
47

source code of qttools/src/qdoc/qdoc/manifestwriter.h