#!/usr/bin/perl use strict; use warnings; use XML::LibXML; my $input_dir = $ARGV[0] || '.'; my $output_dir = $ARGV[1] || 'codegen'; my $separator = $ARGV[2] || "\n"; print "$output_dir/static.inc"; for my $filename (glob "$input_dir/*.xml") { my $parser = XML::LibXML->new(); my $doc = $parser->parse_file($filename); my @nodes = ( $doc->findnodes('/data-definition/enum-type'), $doc->findnodes('/data-definition/bitfield-type'), $doc->findnodes('/data-definition/struct-type'), $doc->findnodes('/data-definition/class-type') ); for my $node (@nodes) { my $name = $node->getAttribute('type-name') or die "Unnamed type in $filename\n"; print "$separator$output_dir/$name.h"; } } print $separator if $separator eq "\n";