1############################################################################# 2## 3## Copyright (C) 2016 The Qt Company Ltd. 4## Contact: https://www.qt.io/licensing/ 5## 6## This file is part of the QtWebEngine module of the Qt Toolkit. 7## 8## $QT_BEGIN_LICENSE:GPL-EXCEPT$ 9## Commercial License Usage 10## Licensees holding valid commercial Qt licenses may use this file in 11## accordance with the commercial license agreement provided with the 12## Software or, alternatively, in accordance with the terms contained in 13## a written agreement between you and The Qt Company. For licensing terms 14## and conditions see https://www.qt.io/terms-conditions. For further 15## information use the contact form at https://www.qt.io/contact-us. 16## 17## GNU General Public License Usage 18## Alternatively, this file may be used under the terms of the GNU 19## General Public License version 3 as published by the Free Software 20## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT 21## included in the packaging of this file. Please review the following 22## information to ensure the GNU General Public License requirements will 23## be met: https://www.gnu.org/licenses/gpl-3.0.html. 24## 25## $QT_END_LICENSE$ 26## 27############################################################################# 28 29import re 30import sys 31import os 32 33mocables = set() 34includedMocs = set() 35files = sys.argv[2:] 36 37for f in filter(os.path.isfile, files): 38 inBlockComment = False 39 for line in open(f).readlines(): 40 # Block comments handling 41 if "/*" in line: 42 inBlockComment = True 43 if inBlockComment and "*/" in line: 44 inBlockComment = False 45 if line.find("*/") != len(line) - 3: 46 line = line[line.find("*/")+2:] 47 else: 48 continue 49 if inBlockComment: 50 continue 51 #simple comments handling 52 if "//" in line: 53 line = line.partition("//")[0] 54 if re.match(".*Q_OBJECT", line): 55 mocables.add(f) 56 im = re.search('#include "(moc_\w+.cpp)"', line) 57 if im: 58 includedMocs.add(im.group(1)) 59 60for mocable in includedMocs: 61 print("Found included moc: " + mocable) 62 63assert len(includedMocs) == 0 , "Included mocs are not supported !" 64 65for mocable in mocables: 66 print(mocable) 67sys.exit(0) 68