OLD | NEW |
1 #!/usr/bin/perl -w | 1 #!/usr/bin/perl -w |
2 # | 2 # |
3 # Copyright (C) 2005 Apple Computer, Inc. | 3 # Copyright (C) 2005 Apple Computer, Inc. |
4 # Copyright (C) 2006 Anders Carlsson <andersca@mac.com> | 4 # Copyright (C) 2006 Anders Carlsson <andersca@mac.com> |
5 # | 5 # |
6 # This file is part of WebKit | 6 # This file is part of WebKit |
7 # | 7 # |
8 # This library is free software; you can redistribute it and/or | 8 # This library is free software; you can redistribute it and/or |
9 # modify it under the terms of the GNU Library General Public | 9 # modify it under the terms of the GNU Library General Public |
10 # License as published by the Free Software Foundation; either | 10 # License as published by the Free Software Foundation; either |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
81 my ($idlFile, @followingIdlFiles) = split(/\s+/, $line); | 81 my ($idlFile, @followingIdlFiles) = split(/\s+/, $line); |
82 if ($idlFile and basename($idlFile) eq basename($targetIdlFile)) { | 82 if ($idlFile and basename($idlFile) eq basename($targetIdlFile)) { |
83 $idlFound = 1; | 83 $idlFound = 1; |
84 # We sort the dependency IDL files so that the corresponding code is
generated | 84 # We sort the dependency IDL files so that the corresponding code is
generated |
85 # in a consistent order. This is important for the bindings tests. | 85 # in a consistent order. This is important for the bindings tests. |
86 @dependencyIdlFiles = sort @followingIdlFiles; | 86 @dependencyIdlFiles = sort @followingIdlFiles; |
87 } | 87 } |
88 } | 88 } |
89 close FH; | 89 close FH; |
90 | 90 |
91 # $additionalIdlFiles is list of IDL files which should not be included in | 91 # $additionalIdlFiles is for IDL files not listed in the interface |
92 # DerivedSources*.cpp (i.e. they are not described in the interface | 92 # dependencies file, namely generated IDL files for interfaces |
93 # dependencies file) but should generate .h and .cpp files. | 93 # (not partial interfaces), so we need to generate .h and .cpp files. |
94 if (!$idlFound and $additionalIdlFiles) { | 94 if (!$idlFound and $additionalIdlFiles) { |
95 my @idlFiles = shellwords($additionalIdlFiles); | 95 my @idlFiles = shellwords($additionalIdlFiles); |
96 $idlFound = grep { $_ and basename($_) eq basename($targetIdlFile) } @id
lFiles; | 96 $idlFound = grep { $_ and basename($_) eq basename($targetIdlFile) } @id
lFiles; |
97 } | 97 } |
98 | 98 |
99 if (!$idlFound) { | 99 if (!$idlFound) { |
100 # We generate empty .h and .cpp files just to tell build scripts that .h
and .cpp files are created. | 100 # IDL files for dependencies (partial interfaces and interfaces |
| 101 # implemented elsewhere). We generate empty .h and .cpp files just to |
| 102 # tell build scripts that outputs have been created. |
101 generateEmptyHeaderAndCpp($targetInterfaceName, $outputDirectory); | 103 generateEmptyHeaderAndCpp($targetInterfaceName, $outputDirectory); |
102 exit 0; | 104 exit 0; |
103 } | 105 } |
104 } | 106 } |
105 | 107 |
106 # Parse the target IDL file. | 108 # Parse the target IDL file. |
107 my $targetParser = idl_parser->new(!$verbose); | 109 my $targetParser = idl_parser->new(!$verbose); |
108 my $targetDocument = $targetParser->Parse($targetIdlFile, $preprocessor); | 110 my $targetDocument = $targetParser->Parse($targetIdlFile, $preprocessor); |
109 | 111 |
110 if ($idlAttributesFile) { | 112 if ($idlAttributesFile) { |
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
295 last OUTER; | 297 last OUTER; |
296 } | 298 } |
297 } | 299 } |
298 } | 300 } |
299 if ($error) { | 301 if ($error) { |
300 die "IDL ATTRIBUTE CHECKER ERROR: $error | 302 die "IDL ATTRIBUTE CHECKER ERROR: $error |
301 If you want to add a new IDL attribute, you need to add it to bindings/scripts/I
DLAttributes.txt and add explanations to the Blink IDL document (http://chromium
.org/blink/webidl). | 303 If you want to add a new IDL attribute, you need to add it to bindings/scripts/I
DLAttributes.txt and add explanations to the Blink IDL document (http://chromium
.org/blink/webidl). |
302 "; | 304 "; |
303 } | 305 } |
304 } | 306 } |
OLD | NEW |