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