mirror of
https://github.com/raspberrypi/pico-sdk.git
synced 2025-08-07 17:02:52 +03:00
Initial Release
This commit is contained in:
49
tools/check_doxygen_groups.py
Executable file
49
tools/check_doxygen_groups.py
Executable file
@@ -0,0 +1,49 @@
|
||||
#!/usr/bin/env python3
|
||||
#
|
||||
# Copyright (c) 2021 Raspberry Pi (Trading) Ltd.
|
||||
#
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
#
|
||||
#
|
||||
# Little script to check that every \ingroup has a matching \defgroup
|
||||
#
|
||||
# Usage:
|
||||
#
|
||||
# Run from the root of the tree to check
|
||||
|
||||
|
||||
import subprocess
|
||||
import re
|
||||
import sys
|
||||
import os
|
||||
|
||||
groups = {}
|
||||
any_errors = False
|
||||
|
||||
res = subprocess.run(['git', 'grep', '\\defgroup'], check=True, stdout=subprocess.PIPE)
|
||||
for line in res.stdout.decode('utf8').split('\n'):
|
||||
m = re.match(r'^(\S+):.*\\defgroup\s+(\w+)', line)
|
||||
if m:
|
||||
filename = m.group(1)
|
||||
group = m.group(2)
|
||||
if os.path.basename(filename) in ('check_doxygen_groups.py', 'index.h'):
|
||||
continue
|
||||
if group in groups:
|
||||
any_errors = True
|
||||
print("{} uses \\defgroup {} but so does {}".format(groups[group], group, filename))
|
||||
else:
|
||||
groups[group] = filename
|
||||
|
||||
res = subprocess.run(['git', 'grep', '\\ingroup'], check=True, stdout=subprocess.PIPE)
|
||||
for line in res.stdout.decode('utf8').split('\n'):
|
||||
m = re.match(r'^(\S+):.*\\ingroup\s+(\w+)', line)
|
||||
if m:
|
||||
filename = m.group(1)
|
||||
group = m.group(2)
|
||||
if os.path.basename(filename) in ('check_doxygen_groups.py', 'index.h'):
|
||||
continue
|
||||
if group not in groups:
|
||||
any_errors = True
|
||||
print("{} uses \\ingroup {} which was never defined".format(filename, group))
|
||||
|
||||
sys.exit(any_errors)
|
Reference in New Issue
Block a user