Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
tracepointgen.cpp
Go to the documentation of this file.
1
// Copyright (C) 2022 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
3
4
#
include
<
qstring
.
h
>
5
#
include
<
qstringlist
.
h
>
6
#
include
<
qfile
.
h
>
7
#
include
<
qfileinfo
.
h
>
8
9
#
include
"tracepointgen.h"
10
#
include
"parser.h"
11
12
static
void
usage
(
int
status)
13
{
14
printf(
"Generates a tracepoint file for tracegen tool from input files.\n\n"
);
15
printf(
"Usage: tracepointgen <output file> <input files> \n"
);
16
exit(status);
17
}
18
19
static
void
parseArgs
(
int
argc,
char
*argv[], QString &provider, QString &outFile,
QList
<QString> &inputFiles)
20
{
21
if
(argc == 1)
22
usage
(
0
)
;
23
if
(argc < 4)
24
usage
(
-1
)
;
25
26
provider = QLatin1StringView(argv[1]);
27
outFile = QLatin1StringView(argv[2]);
28
for
(
int
i = 3; i < argc; i++)
29
inputFiles.append(QLatin1StringView(argv[i]));
30
}
31
32
int
main
(
int
argc,
char
*argv[])
33
{
34
QString provider;
35
QList
<QString> inputFiles;
36
QString outFile;
37
38
parseArgs(argc, argv, provider, outFile, inputFiles);
39
40
Parser parser(provider);
41
42
for
(
const
QString &inputFile : inputFiles) {
43
if
(inputFile.startsWith(QLatin1Char(
'I'
))) {
44
QStringList includeDirs = inputFile.right(inputFile.length() - 1).split(QLatin1Char(
';'
));
45
parser.addIncludeDirs(includeDirs);
46
continue
;
47
}
48
QFile in(inputFile);
49
if
(!in.open(QIODevice::ReadOnly | QIODevice::Text)) {
50
panic(
"Cannot open '%s' for reading: %s\n"
,
51
qPrintable
(inputFile),
qPrintable
(in.errorString()));
52
}
53
DEBUGPRINTF
(printf(
"tracepointgen: parse %s\n"
, qPrintable(inputFile)));
54
QFileInfo info(inputFile);
55
parser.addIncludeDirs({info.absolutePath()});
56
parser.parse(in, inputFile);
57
}
58
if
(parser
.
isEmpty
(
)
)
59
panic(
"empty provider %s\n"
,
qPrintable
(provider));
60
61
QFile
out(outFile);
62
63
if
(!out.open(QIODevice::WriteOnly | QIODevice::Truncate)) {
64
panic(
"Cannot open '%s' for writing: %s\n"
,
65
qPrintable
(outFile),
qPrintable
(out.errorString()));
66
}
67
68
parser.write(out);
69
out.close();
70
71
return
0;
72
}
Parser::isEmpty
bool isEmpty() const
Definition
parser.h:62
QFile
Definition
qfile.h:71
QList
Definition
qlist.h:82
qPrintable
#define qPrintable(string)
Definition
qstring.h:1718
main
int main(int argc, char *argv[])
[ctor_close]
Definition
src_corelib_animation_qpropertyanimation.cpp:100
usage
static void usage(int status)
Definition
tracepointgen.cpp:12
parseArgs
static void parseArgs(int argc, char *argv[], QString &provider, QString &outFile, QList< QString > &inputFiles)
Definition
tracepointgen.cpp:19
DEBUGPRINTF
#define DEBUGPRINTF(x)
Definition
tracepointgen.h:21
qtbase
src
tools
tracepointgen
tracepointgen.cpp
Generated on
for Qt by
1.18.0