| Index: Source/bindings/scripts/CodeGenerator.pm
|
| diff --git a/Source/bindings/scripts/CodeGenerator.pm b/Source/bindings/scripts/CodeGenerator.pm
|
| index 094b08125197c7c94570ffda2154e34257a27c83..d6ab7244c68c3f9e8a4f83094acf66d88636627b 100644
|
| --- a/Source/bindings/scripts/CodeGenerator.pm
|
| +++ b/Source/bindings/scripts/CodeGenerator.pm
|
| @@ -242,10 +242,8 @@ sub FindSuperMethod
|
| return $indexer;
|
| }
|
|
|
| -sub IDLFileForInterface
|
| -{
|
| +sub PopulateIDLFiles {
|
| my $object = shift;
|
| - my $interfaceName = shift;
|
|
|
| unless ($idlFiles) {
|
| my $sourceRoot = $ENV{SOURCE_ROOT};
|
| @@ -255,11 +253,37 @@ sub IDLFileForInterface
|
| $idlFiles = { };
|
|
|
| my $wanted = sub {
|
| - $idlFiles->{$1} = $File::Find::name if /^([A-Z].*)\.idl$/;
|
| + $idlFiles->{$1} = $File::Find::name if /^(?!Test)([A-Z].*)\.idl$/;
|
| $File::Find::prune = 1 if /^\../;
|
| };
|
| find($wanted, @directories);
|
| }
|
| +}
|
| +
|
| +sub GetAllInterfaces
|
| +{
|
| + my $object = shift;
|
| +
|
| + $object->PopulateIDLFiles();
|
| +
|
| + foreach my $filename (values $idlFiles) {
|
| + my $parser = IDLParser->new(1);
|
| + my $document = $parser->Parse($filename, $defines, $preprocessor);
|
| +
|
| + foreach my $interface (@{$document->interfaces}) {
|
| + $cachedInterfaces->{$interface->name} = $interface;
|
| + }
|
| + }
|
| +
|
| + return (values $cachedInterfaces);
|
| +}
|
| +
|
| +sub IDLFileForInterface
|
| +{
|
| + my $object = shift;
|
| + my $interfaceName = shift;
|
| +
|
| + $object->PopulateIDLFiles();
|
|
|
| return $idlFiles->{$interfaceName};
|
| }
|
|
|