| OLD | NEW |
| 1 # Copyright 2014 The Chromium Authors. All rights reserved. | 1 # Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 # Generate IDL bindings for modules, plus aggregate bindings files. | 5 # Generate IDL bindings for modules, plus aggregate bindings files. |
| 6 # | 6 # |
| 7 # Design doc: http://www.chromium.org/developers/design-documents/idl-build | 7 # Design doc: http://www.chromium.org/developers/design-documents/idl-build |
| 8 | 8 |
| 9 { | 9 { |
| 10 'includes': [ | 10 'includes': [ |
| 11 '../../../modules/modules.gypi', | 11 '../../../modules/modules.gypi', |
| 12 '../../bindings.gypi', | 12 '../../bindings.gypi', |
| 13 '../../core/idl.gypi', | 13 '../../core/idl.gypi', |
| 14 '../../scripts/scripts.gypi', | 14 '../../scripts/scripts.gypi', |
| 15 '../idl.gypi', | 15 '../idl.gypi', |
| 16 '../modules.gypi', |
| 16 'generated.gypi', | 17 'generated.gypi', |
| 17 ], | 18 ], |
| 18 | 19 |
| 19 'variables': { | 20 'variables': { |
| 20 # IDL file lists; see: http://www.chromium.org/developers/web-idl-interfaces | 21 # IDL file lists; see: http://www.chromium.org/developers/web-idl-interfaces |
| 21 # Write lists of main IDL files to a file, so that the command lines don't | 22 # Write lists of main IDL files to a file, so that the command lines don't |
| 22 # exceed OS length limits. | 23 # exceed OS length limits. |
| 23 'modules_idl_files_list': '<|(modules_idl_files_list.tmp <@(modules_idl_file
s))', | 24 'modules_idl_files_list': '<|(modules_idl_files_list.tmp <@(modules_idl_file
s))', |
| 24 | 25 |
| 25 # Interface IDL files: generate individual bindings (includes testing) | 26 # Interface IDL files: generate individual bindings (includes testing) |
| (...skipping 19 matching lines...) Expand all Loading... |
| 45 'sources': [ | 46 'sources': [ |
| 46 '<@(modules_interface_idl_files)', | 47 '<@(modules_interface_idl_files)', |
| 47 ], | 48 ], |
| 48 'rules': [{ | 49 'rules': [{ |
| 49 'rule_name': 'binding', | 50 'rule_name': 'binding', |
| 50 'extension': 'idl', | 51 'extension': 'idl', |
| 51 'msvs_external_rule': 1, | 52 'msvs_external_rule': 1, |
| 52 'inputs': [ | 53 'inputs': [ |
| 53 '<@(idl_lexer_parser_files)', # to be explicit (covered by parsetab) | 54 '<@(idl_lexer_parser_files)', # to be explicit (covered by parsetab) |
| 54 '<@(idl_compiler_files)', | 55 '<@(idl_compiler_files)', |
| 55 '<(bindings_output_dir)/lextab.py', | 56 '<(bindings_scripts_output_dir)/lextab.py', |
| 56 '<(bindings_output_dir)/parsetab.pickle', | 57 '<(bindings_scripts_output_dir)/parsetab.pickle', |
| 57 '<(bindings_output_dir)/cached_jinja_templates.stamp', | 58 '<(bindings_scripts_output_dir)/cached_jinja_templates.stamp', |
| 58 '<(bindings_dir)/IDLExtendedAttributes.txt', | 59 '<(bindings_dir)/IDLExtendedAttributes.txt', |
| 59 # If the dependency structure or public interface info (e.g., | 60 # If the dependency structure or public interface info (e.g., |
| 60 # [ImplementedAs]) changes, we rebuild all files, since we're not | 61 # [ImplementedAs]) changes, we rebuild all files, since we're not |
| 61 # computing dependencies file-by-file in the build. | 62 # computing dependencies file-by-file in the build. |
| 62 # This data is generally stable. | 63 # This data is generally stable. |
| 63 '<(blink_output_dir)/InterfacesInfo.pickle', | 64 '<(bindings_modules_output_dir)/InterfacesInfoModules.pickle', |
| 64 # Further, if any dependency (partial interface or implemented | 65 # Further, if any dependency (partial interface or implemented |
| 65 # interface) changes, rebuild everything, since every IDL potentially | 66 # interface) changes, rebuild everything, since every IDL potentially |
| 66 # depends on them, because we're not computing dependencies | 67 # depends on them, because we're not computing dependencies |
| 67 # file-by-file. | 68 # file-by-file. |
| 68 # FIXME: This is too conservative, and causes excess rebuilds: | 69 # FIXME: This is too conservative, and causes excess rebuilds: |
| 69 # compute this file-by-file. http://crbug.com/341748 | 70 # compute this file-by-file. http://crbug.com/341748 |
| 70 '<@(all_dependency_idl_files)', | 71 '<@(all_dependency_idl_files)', |
| 71 ], | 72 ], |
| 72 'outputs': [ | 73 'outputs': [ |
| 73 '<(bindings_output_dir)/V8<(RULE_INPUT_ROOT).cpp', | 74 '<(bindings_modules_v8_output_dir)/V8<(RULE_INPUT_ROOT).cpp', |
| 74 '<(bindings_output_dir)/V8<(RULE_INPUT_ROOT).h', | 75 '<(bindings_modules_v8_output_dir)/V8<(RULE_INPUT_ROOT).h', |
| 75 ], | 76 ], |
| 76 # sanitize-win-build-log.sed uses a regex which matches this command | 77 # sanitize-win-build-log.sed uses a regex which matches this command |
| 77 # line (Python script + .idl file being processed). | 78 # line (Python script + .idl file being processed). |
| 78 # Update that regex if command line changes (other than changing flags) | 79 # Update that regex if command line changes (other than changing flags) |
| 79 'action': [ | 80 'action': [ |
| 80 'python', | 81 'python', |
| 81 '-S', # skip 'import site' to speed up startup | 82 '-S', # skip 'import site' to speed up startup |
| 82 '<(bindings_scripts_dir)/idl_compiler.py', | 83 '<(bindings_scripts_dir)/idl_compiler.py', |
| 84 '--cache-dir', |
| 85 '<(bindings_scripts_output_dir)', |
| 83 '--output-dir', | 86 '--output-dir', |
| 84 '<(bindings_output_dir)', | 87 '<(bindings_modules_v8_output_dir)', |
| 85 '--interfaces-info', | 88 '--interfaces-info', |
| 86 '<(blink_output_dir)/InterfacesInfo.pickle', | 89 '<(bindings_modules_output_dir)/InterfacesInfoModules.pickle', |
| 87 '--write-file-only-if-changed', | 90 '--write-file-only-if-changed', |
| 88 '<(write_file_only_if_changed)', | 91 '<(write_file_only_if_changed)', |
| 89 '<(RULE_INPUT_PATH)', | 92 '<(RULE_INPUT_PATH)', |
| 90 ], | 93 ], |
| 91 'message': 'Generating binding from <(RULE_INPUT_PATH)', | 94 'message': 'Generating binding from <(RULE_INPUT_PATH)', |
| 92 }], | 95 }], |
| 93 }, | 96 }, |
| 94 ################################################################################ | 97 ################################################################################ |
| 95 { | 98 { |
| 96 'target_name': 'bindings_modules_generated_aggregate', | 99 'target_name': 'bindings_modules_generated_aggregate', |
| 97 'type': 'none', | 100 'type': 'none', |
| 98 'actions': [{ | 101 'actions': [{ |
| 99 'action_name': 'generate_aggregate_bindings_modules', | 102 'action_name': 'generate_aggregate_bindings_modules', |
| 100 'inputs': [ | 103 'inputs': [ |
| 101 '<(bindings_scripts_dir)/aggregate_generated_bindings.py', | 104 '<(bindings_scripts_dir)/aggregate_generated_bindings.py', |
| 102 '<(modules_idl_files_list)', | 105 '<(modules_idl_files_list)', |
| 103 ], | 106 ], |
| 104 'outputs': [ | 107 'outputs': [ |
| 105 '<@(bindings_modules_generated_aggregate_files)', | 108 '<@(bindings_modules_generated_aggregate_files)', |
| 106 ], | 109 ], |
| 107 'action': [ | 110 'action': [ |
| 108 'python', | 111 'python', |
| 109 '<(bindings_scripts_dir)/aggregate_generated_bindings.py', | 112 '<(bindings_scripts_dir)/aggregate_generated_bindings.py', |
| 113 'modules', |
| 110 '<(modules_idl_files_list)', | 114 '<(modules_idl_files_list)', |
| 111 '--', | 115 '--', |
| 112 '<@(bindings_modules_generated_aggregate_files)', | 116 '<@(bindings_modules_generated_aggregate_files)', |
| 113 ], | 117 ], |
| 114 'message': 'Generating aggregate generated modules bindings files', | 118 'message': 'Generating aggregate generated modules bindings files', |
| 115 }], | 119 }], |
| 116 }, | 120 }, |
| 117 ################################################################################ | 121 ################################################################################ |
| 118 { | 122 { |
| 119 'target_name': 'bindings_modules_generated', | 123 'target_name': 'bindings_modules_generated', |
| 120 'type': 'none', | 124 'type': 'none', |
| 121 'dependencies': [ | 125 'dependencies': [ |
| 122 'bindings_modules_generated_aggregate', | 126 'bindings_modules_generated_aggregate', |
| 123 'bindings_modules_generated_individual', | 127 'bindings_modules_generated_individual', |
| 124 ], | 128 ], |
| 125 }, | 129 }, |
| 126 ################################################################################ | 130 ################################################################################ |
| 127 ], # targets | 131 ], # targets |
| 128 } | 132 } |
| OLD | NEW |