| OLD | NEW |
| 1 # | 1 # |
| 2 # Copyright (C) 2013 Google Inc. All rights reserved. | 2 # Copyright (C) 2013 Google Inc. All rights reserved. |
| 3 # | 3 # |
| 4 # Redistribution and use in source and binary forms, with or without | 4 # Redistribution and use in source and binary forms, with or without |
| 5 # modification, are permitted provided that the following conditions are | 5 # modification, are permitted provided that the following conditions are |
| 6 # met: | 6 # met: |
| 7 # | 7 # |
| 8 # * Redistributions of source code must retain the above copyright | 8 # * Redistributions of source code must retain the above copyright |
| 9 # notice, this list of conditions and the following disclaimer. | 9 # notice, this list of conditions and the following disclaimer. |
| 10 # * Redistributions in binary form must reproduce the above | 10 # * Redistributions in binary form must reproduce the above |
| (...skipping 10 matching lines...) Expand all Loading... |
| 21 # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | 21 # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
| 22 # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | 22 # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
| 23 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | 23 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
| 24 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | 24 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
| 25 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 25 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| 26 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 26 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| 27 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 27 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| 28 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 28 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 29 # | 29 # |
| 30 | 30 |
| 31 # Generate IDL bindings, together with auxiliary files |
| 32 # (constructors on global objects, aggregate bindings files). |
| 33 # |
| 34 # Design doc: http://www.chromium.org/developers/design-documents/idl-build |
| 35 |
| 31 { | 36 { |
| 32 'includes': [ | 37 'includes': [ |
| 33 '../build/scripts/scripts.gypi', | 38 '../build/scripts/scripts.gypi', |
| 34 '../build/win/precompile.gypi', | 39 '../build/win/precompile.gypi', |
| 35 '../build/scripts/scripts.gypi', | 40 '../build/scripts/scripts.gypi', |
| 36 '../core/core.gypi', | 41 '../core/core.gypi', |
| 37 '../modules/modules.gypi', | 42 '../modules/modules.gypi', |
| 38 'bindings.gypi', | 43 'bindings.gypi', |
| 39 ], | 44 ], |
| 40 | 45 |
| 41 'variables': { | 46 'variables': { |
| 42 # For details, see: http://www.chromium.org/developers/web-idl-interfaces | 47 # For details, see: http://www.chromium.org/developers/web-idl-interfaces |
| 43 # | 48 # |
| 44 # Interface IDL files / Dependency IDL files | 49 # Interface IDL files / Dependency IDL files |
| 45 # Interface IDL files: generate individual bindings (includes testing) | 50 # Interface IDL files: generate individual bindings (includes testing) |
| 46 'interface_idl_files': [ | 51 'interface_idl_files': [ |
| 47 '<@(static_interface_idl_files)', | 52 '<@(static_interface_idl_files)', |
| 48 '<@(generated_interface_idl_files)', | 53 '<@(generated_interface_idl_files)', |
| 49 ], | 54 ], |
| 50 # Dependency IDL files: don't generate individual bindings, but do process | 55 # Dependency IDL files: don't generate individual bindings, but do process |
| 51 # in IDL dependency computation, and count as build dependencies | 56 # in IDL dependency computation, and count as build dependencies |
| 52 'dependency_idl_files': [ | 57 'dependency_idl_files': [ |
| 53 '<@(static_dependency_idl_files)', | 58 '<@(static_dependency_idl_files)', |
| 54 '<@(generated_dependency_idl_files)', | 59 '<@(generated_dependency_idl_files)', |
| 55 ], | 60 ], |
| 56 # Include in aggregate bindings (exclude testing) | 61 # Main interface IDL files (excluding dependencies and testing) |
| 57 # The only differences for testing files are: | 62 # are included as properties on global objects, and in aggregate bindings |
| 58 # * They are not included in aggregate bindings (excluded from below list) | |
| 59 # * They do not appear as a property on the global object (Window): | |
| 60 # specify [NoInterfaceObject] on the interface in the .idl file | |
| 61 'main_interface_idl_files': [ | 63 'main_interface_idl_files': [ |
| 62 '<@(core_idl_files)', | 64 '<@(core_idl_files)', |
| 63 '<@(modules_idl_files)', | 65 '<@(modules_idl_files)', |
| 64 ], | 66 ], |
| 65 | 67 |
| 66 # Static IDL files / Generated IDL files | 68 # Static IDL files / Generated IDL files |
| 67 # Paths need to be passed separately for static and generated files, as | 69 # Paths need to be passed separately for static and generated files, as |
| 68 # static files are listed in a temporary file (b/c too long for command | 70 # static files are listed in a temporary file (b/c too long for command |
| 69 # line), but generated files must be passed at the command line, as they are | 71 # line), but generated files must be passed at the command line, as they are |
| 70 # not present at GYP time, when the temporary file is generated | 72 # not present at GYP time, when the temporary file is generated |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 168 }, | 170 }, |
| 169 | 171 |
| 170 'targets': [{ | 172 'targets': [{ |
| 171 'target_name': 'global_constructors_idls', | 173 'target_name': 'global_constructors_idls', |
| 172 'type': 'none', | 174 'type': 'none', |
| 173 'actions': [{ | 175 'actions': [{ |
| 174 'action_name': 'generate_global_constructors_idls', | 176 'action_name': 'generate_global_constructors_idls', |
| 175 'variables': { | 177 'variables': { |
| 176 # Write list of IDL files to a file, so that the command line doesn't | 178 # Write list of IDL files to a file, so that the command line doesn't |
| 177 # exceed OS length limits. | 179 # exceed OS length limits. |
| 178 'idl_files_list': '<|(idl_files_list.tmp <@(static_idl_files))', | 180 # Only includes main IDL files (exclude dependencies and testing, |
| 181 # which should not appear on global objects). |
| 182 'main_interface_idl_files_list': '<|(main_interface_idl_files_list.tmp <
@(main_interface_idl_files))', |
| 179 }, | 183 }, |
| 180 'inputs': [ | 184 'inputs': [ |
| 181 'scripts/generate_global_constructors.py', | 185 'scripts/generate_global_constructors.py', |
| 182 'scripts/utilities.py', | 186 'scripts/utilities.py', |
| 183 '<(idl_files_list)', | 187 '<(main_interface_idl_files_list)', |
| 184 '<@(static_idl_files)', | 188 '<@(main_interface_idl_files)', |
| 185 ], | 189 ], |
| 186 'outputs': [ | 190 'outputs': [ |
| 187 '<@(generated_global_constructors_idl_files)', | 191 '<@(generated_global_constructors_idl_files)', |
| 188 ], | 192 ], |
| 189 'action': [ | 193 'action': [ |
| 190 'python', | 194 'python', |
| 191 'scripts/generate_global_constructors.py', | 195 'scripts/generate_global_constructors.py', |
| 192 '--idl-files-list', | 196 '--idl-files-list', |
| 193 '<(idl_files_list)', | 197 '<(main_interface_idl_files_list)', |
| 194 '<@(write_file_only_if_changed)', | 198 '<@(write_file_only_if_changed)', |
| 195 '--window-constructors-file', | 199 '--', |
| 200 'Window', |
| 196 '<(SHARED_INTERMEDIATE_DIR)/blink/WindowConstructors.idl', | 201 '<(SHARED_INTERMEDIATE_DIR)/blink/WindowConstructors.idl', |
| 197 '--workerglobalscope-constructors-file', | 202 'WorkerGlobalScope', |
| 198 '<(SHARED_INTERMEDIATE_DIR)/blink/WorkerGlobalScopeConstructors.idl', | 203 '<(SHARED_INTERMEDIATE_DIR)/blink/WorkerGlobalScopeConstructors.idl', |
| 199 '--sharedworkerglobalscope-constructors-file', | 204 'SharedWorkerGlobalScope', |
| 200 '<(SHARED_INTERMEDIATE_DIR)/blink/SharedWorkerGlobalScopeConstructors.id
l', | 205 '<(SHARED_INTERMEDIATE_DIR)/blink/SharedWorkerGlobalScopeConstructors.id
l', |
| 201 '--dedicatedworkerglobalscope-constructors-file', | 206 'DedicatedWorkerGlobalScope', |
| 202 '<(SHARED_INTERMEDIATE_DIR)/blink/DedicatedWorkerGlobalScopeConstructors
.idl', | 207 '<(SHARED_INTERMEDIATE_DIR)/blink/DedicatedWorkerGlobalScopeConstructors
.idl', |
| 203 '--serviceworkerglobalscope-constructors-file', | 208 'ServiceWorkerGlobalScope', |
| 204 '<(SHARED_INTERMEDIATE_DIR)/ServiceWorkerGlobalScopeConstructors.idl', | 209 '<(SHARED_INTERMEDIATE_DIR)/ServiceWorkerGlobalScopeConstructors.idl', |
| 205 ], | 210 ], |
| 206 'message': 'Generating IDL files for constructors on global objects', | 211 'message': 'Generating IDL files for constructors on global objects', |
| 207 }] | 212 }] |
| 208 }, | 213 }, |
| 209 { | 214 { |
| 210 'target_name': 'interfaces_info', | 215 'target_name': 'interfaces_info', |
| 211 'type': 'none', | 216 'type': 'none', |
| 212 'dependencies': [ | 217 'dependencies': [ |
| 213 'global_constructors_idls', | 218 'global_constructors_idls', |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 302 # If the dependency structure or public interface info (e.g., | 307 # If the dependency structure or public interface info (e.g., |
| 303 # [ImplementedAs]) changes, we rebuild all files, since we're not | 308 # [ImplementedAs]) changes, we rebuild all files, since we're not |
| 304 # computing dependencies file-by-file in the build. | 309 # computing dependencies file-by-file in the build. |
| 305 # This data is generally stable. | 310 # This data is generally stable. |
| 306 '<(SHARED_INTERMEDIATE_DIR)/blink/InterfacesInfo.pickle', | 311 '<(SHARED_INTERMEDIATE_DIR)/blink/InterfacesInfo.pickle', |
| 307 # Further, if any dependency (partial interface or implemented | 312 # Further, if any dependency (partial interface or implemented |
| 308 # interface) changes, rebuild everything, since every IDL potentially | 313 # interface) changes, rebuild everything, since every IDL potentially |
| 309 # depends on them, because we're not computing dependencies | 314 # depends on them, because we're not computing dependencies |
| 310 # file-by-file. | 315 # file-by-file. |
| 311 # FIXME: This is too conservative, and causes excess rebuilds: | 316 # FIXME: This is too conservative, and causes excess rebuilds: |
| 312 # compute this file-by-file. | 317 # compute this file-by-file. http://crbug.com/341748 |
| 313 '<@(dependency_idl_files)', | 318 '<@(dependency_idl_files)', |
| 314 ], | 319 ], |
| 315 'outputs': [ | 320 'outputs': [ |
| 316 '<(bindings_output_dir)/V8<(RULE_INPUT_ROOT).cpp', | 321 '<(bindings_output_dir)/V8<(RULE_INPUT_ROOT).cpp', |
| 317 '<(bindings_output_dir)/V8<(RULE_INPUT_ROOT).h', | 322 '<(bindings_output_dir)/V8<(RULE_INPUT_ROOT).h', |
| 318 ], | 323 ], |
| 319 # sanitize-win-build-log.sed uses a regex which matches this command | 324 # sanitize-win-build-log.sed uses a regex which matches this command |
| 320 # line (Python script + .idl file being processed). | 325 # line (Python script + .idl file being processed). |
| 321 # Update that regex if command line changes (other than changing flags) | 326 # Update that regex if command line changes (other than changing flags) |
| 322 'action': [ | 327 'action': [ |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 364 { | 369 { |
| 365 'target_name': 'generated_bindings', | 370 'target_name': 'generated_bindings', |
| 366 'type': 'none', | 371 'type': 'none', |
| 367 'dependencies': [ | 372 'dependencies': [ |
| 368 'aggregate_generated_bindings', | 373 'aggregate_generated_bindings', |
| 369 'individual_generated_bindings', | 374 'individual_generated_bindings', |
| 370 ], | 375 ], |
| 371 }, | 376 }, |
| 372 ], | 377 ], |
| 373 } | 378 } |
| OLD | NEW |