blob: 68f648889c29477abece9472be88bd5bc4d8796c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
# Copyright (C) 2016 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import re
import sys
import os
mocables = set()
includedMocs = set()
files = sys.argv[1:]
for f in filter(os.path.isfile, files):
inBlockComment = False
for line in open(f).readlines():
# Block comments handling
if "/*" in line:
inBlockComment = True
if inBlockComment and "*/" in line:
inBlockComment = False
if line.find("*/") != len(line) - 3:
line = line[line.find("*/")+2:]
else:
continue
if inBlockComment:
continue
#simple comments handling
if "//" in line:
line = line.partition("//")[0]
if re.match(".*Q_OBJECT", line):
mocables.add(f)
im = re.search('#include "(moc_\w+.cpp)"', line)
if im:
includedMocs.add(im.group(1))
for mocable in includedMocs:
print("Found included moc: " + mocable)
assert len(includedMocs) == 0 , "Included mocs are not supported !"
for mocable in mocables:
print(mocable)
sys.exit(0)
|