本文共 1497 字,大约阅读时间需要 4 分钟。
use strict;use File::Path;use Getopt::Long;use Cwd;use IDLParser;use CodeGenerator;my @idlDirectories;my $outputDirectory;my $outputHeadersDirectory;my $generator;my $defines;my $filename;my $prefix;my $preprocessor;my $writeDependencies;my $verbose;GetOptions('include=s@' => \@idlDirectories, 'outputDir=s' => \$outputDirectory, 'outputHeadersDir=s' => \$outputHeadersDirectory, 'generator=s' => \$generator, 'defines=s' => \$defines, 'filename=s' => \$filename, 'prefix=s' => \$prefix, 'preprocessor=s' => \$preprocessor, 'verbose' => \$verbose, 'write-dependencies' => \$writeDependencies);my $idlFile = $ARGV[0];die('Must specify input file.') unless defined($idlFile);die('Must specify generator') unless defined($generator);die('Must specify output directory.') unless defined($outputDirectory);die('Must specify defines') unless defined($defines);if (!$outputHeadersDirectory) { $outputHeadersDirectory = $outputDirectory;}if ($verbose) { print "$generator: $idlFile\n";}$defines =~ s/^\s+|\s+$//g; # trim whitespace# Parse the given IDL file.my $parser = IDLParser->new(!$verbose);my $document = $parser->Parse($idlFile, $defines, $preprocessor);# Generate desired output for given IDL file.my $codeGen = CodeGenerator->new(\@idlDirectories, $generator, $outputDirectory, $outputHeadersDirectory, 0, $preprocessor, $writeDependencies, $verbose);$codeGen->ProcessDocument($document, $defines);
转载地址:http://wcvbi.baihongyu.com/