Webkit之generate-bindings.pl源码分析

来源:互联网 发布:骨关节功能解剖学知乎 编辑:程序博客网 时间:2024/06/05 21:09
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);

0 0
原创粉丝点击