xref: /dpdk/doc/api/generate_doxygen.py (revision 53bb9a073f4f905edaba81bc17eb9c33903242bc)
1*53bb9a07SDmitry Kozlyuk#!/usr/bin/env python3
2*53bb9a07SDmitry Kozlyuk# SPDX-License-Identifier: BSD-3-Clause
3*53bb9a07SDmitry Kozlyuk# (c) 2018 Luca Boccassi <bluca@debian.org>
4*53bb9a07SDmitry Kozlyuk# (c) 2022 Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
5*53bb9a07SDmitry Kozlyuk
6*53bb9a07SDmitry Kozlyukimport os, re, subprocess, sys
7*53bb9a07SDmitry Kozlyuk
8*53bb9a07SDmitry Kozlyukpattern = re.compile('^Preprocessing (.*)...$')
9*53bb9a07SDmitry Kozlyukout_dir, *doxygen_command = sys.argv[1:]
10*53bb9a07SDmitry Kozlyukout_file = os.path.join(os.path.dirname(out_dir), 'doxygen.out')
11*53bb9a07SDmitry Kozlyukdep_file = f'{out_dir}.d'
12*53bb9a07SDmitry Kozlyukwith open(out_file, 'w') as out:
13*53bb9a07SDmitry Kozlyuk    subprocess.run(doxygen_command, check=True, stdout=out)
14*53bb9a07SDmitry Kozlyukwith open(out_file) as out, open(dep_file, 'w') as dep:
15*53bb9a07SDmitry Kozlyuk    print(f'{out_dir}:', end=' ', file=dep)
16*53bb9a07SDmitry Kozlyuk    for line in out:
17*53bb9a07SDmitry Kozlyuk        match = re.match(pattern, line)
18*53bb9a07SDmitry Kozlyuk        if match:
19*53bb9a07SDmitry Kozlyuk            print(match.group(1), end=' ', file=dep)
20