diff options
author | Michal Klocek <michal.klocek@qt.io> | 2016-11-18 19:42:07 +0100 |
---|---|---|
committer | Michal Klocek <michal.klocek@qt.io> | 2016-12-16 17:00:44 +0000 |
commit | e00ac03b406f7588a41b83f6d33a8306c3dd92b8 (patch) | |
tree | c66ea729f77492fb0fb6c4312817d6abd54f7822 /tools/scripts/gn_find_mocables.py | |
parent | 794606237796b976f9cede7bfdc218e4de6a42ec (diff) |
Add gn generator for pro files
Change-Id: I5f28314d79b4aad587b323b027eb6d74ad422a73
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'tools/scripts/gn_find_mocables.py')
-rw-r--r-- | tools/scripts/gn_find_mocables.py | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/tools/scripts/gn_find_mocables.py b/tools/scripts/gn_find_mocables.py new file mode 100644 index 000000000..d97dcb534 --- /dev/null +++ b/tools/scripts/gn_find_mocables.py @@ -0,0 +1,68 @@ +############################################################################# +## +## Copyright (C) 2016 The Qt Company Ltd. +## Contact: https://www.qt.io/licensing/ +## +## This file is part of the QtWebEngine module of the Qt Toolkit. +## +## $QT_BEGIN_LICENSE:GPL-EXCEPT$ +## Commercial License Usage +## Licensees holding valid commercial Qt licenses may use this file in +## accordance with the commercial license agreement provided with the +## Software or, alternatively, in accordance with the terms contained in +## a written agreement between you and The Qt Company. For licensing terms +## and conditions see https://www.qt.io/terms-conditions. For further +## information use the contact form at https://www.qt.io/contact-us. +## +## GNU General Public License Usage +## Alternatively, this file may be used under the terms of the GNU +## General Public License version 3 as published by the Free Software +## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +## included in the packaging of this file. Please review the following +## information to ensure the GNU General Public License requirements will +## be met: https://www.gnu.org/licenses/gpl-3.0.html. +## +## $QT_END_LICENSE$ +## +############################################################################# + +import re +import sys +import os + +mocables = set() +includedMocs = set() +dir = sys.argv[1] +files = sys.argv[2:] + +for f in filter(os.path.isfile, [os.path.join(dir, f) for f in 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) |