| OLD | NEW |
| (Empty) |
| 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 | |
| 3 # found in the LICENSE file. | |
| 4 | |
| 5 # Generate IDL bindings for core, plus aggregate bindings files. | |
| 6 # | |
| 7 # Design doc: http://www.chromium.org/developers/design-documents/idl-build | |
| 8 | |
| 9 { | |
| 10 'includes': [ | |
| 11 # ../../.. == Source | |
| 12 '../../../bindings/bindings.gypi', | |
| 13 '../../../bindings/core/generated.gypi', | |
| 14 '../../../bindings/core/idl.gypi', | |
| 15 # FIXME: need info about modules IDL files because some core IDL files | |
| 16 # depend on modules IDL files http://crbug.com/358074 | |
| 17 '../../../bindings/modules/idl.gypi', | |
| 18 '../../../bindings/modules/modules.gypi', | |
| 19 '../../../bindings/scripts/scripts.gypi', | |
| 20 '../../../bindings/dart/scripts/scripts.gypi', | |
| 21 '../../../bindings/dart/scripts/templates/templates.gypi', | |
| 22 '../../../core/core.gypi', | |
| 23 'generated.gypi', | |
| 24 'dart-extras.gypi', | |
| 25 ], | |
| 26 | |
| 27 'targets': [ | |
| 28 ################################################################################ | |
| 29 { | |
| 30 # GN version: //third_party/WebKit/Source/bindings/core/dart:bindings_core_d
art_generated_individual | |
| 31 'target_name': 'bindings_core_dart_generated_individual', | |
| 32 'type': 'none', | |
| 33 # The 'binding' rule generates .h files, so mark as hard_dependency, per: | |
| 34 # https://code.google.com/p/gyp/wiki/InputFormatReference#Linking_Dependenci
es | |
| 35 'hard_dependency': 1, | |
| 36 'dependencies': [ | |
| 37 '../../../core/core_generated.gyp:generated_testing_idls', | |
| 38 '../generated.gyp:core_global_constructors_idls', | |
| 39 # FIXME: should not depend on modules, but partial interface definitions | |
| 40 # in modules change bindings for core http://crbug.com/358074 | |
| 41 '../../modules/generated.gyp:modules_global_constructors_idls', | |
| 42 '<(bindings_scripts_dir)/scripts.gyp:dart_cached_jinja_templates', | |
| 43 '<(bindings_scripts_dir)/scripts.gyp:cached_lex_yacc_tables', | |
| 44 # FIXME: should be interfaces_info_core (w/o modules) | |
| 45 # http://crbug.com/358074 | |
| 46 '../../modules/generated.gyp:interfaces_info', | |
| 47 ], | |
| 48 'sources': [ | |
| 49 '<@(core_interface_idl_files)', | |
| 50 ], | |
| 51 'rules': [{ | |
| 52 'rule_name': 'binding', | |
| 53 'extension': 'idl', | |
| 54 'msvs_external_rule': 1, | |
| 55 'inputs': [ | |
| 56 '<@(idl_lexer_parser_files)', # to be explicit (covered by parsetab) | |
| 57 '<@(idl_compiler_files)', | |
| 58 '<@(dart_idl_compiler_files)', | |
| 59 '<@(dart_code_generator_template_files)', | |
| 60 '<(bindings_scripts_output_dir)/lextab.py', | |
| 61 '<(bindings_scripts_output_dir)/parsetab.pickle', | |
| 62 '<(bindings_scripts_output_dir)/cached_jinja_templates.stamp', | |
| 63 '<(bindings_dir)/IDLExtendedAttributes.txt', | |
| 64 # If the dependency structure or public interface info (e.g., | |
| 65 # [ImplementedAs]) changes, we rebuild all files, since we're not | |
| 66 # computing dependencies file-by-file in the build. | |
| 67 # This data is generally stable. | |
| 68 '<(bindings_modules_output_dir)/InterfacesInfoModules.pickle', | |
| 69 # Further, if any dependency (partial interface or implemented | |
| 70 # interface) changes, rebuild everything, since every IDL potentially | |
| 71 # depends on them, because we're not computing dependencies | |
| 72 # file-by-file. | |
| 73 # FIXME: This is too conservative, and causes excess rebuilds: | |
| 74 # compute this file-by-file. http://crbug.com/341748 | |
| 75 # FIXME: should be core_all_dependency_idl_files only, but some core IDL | |
| 76 # files depend on modules IDL files http://crbug.com/358074 | |
| 77 '<@(all_dependency_idl_files)', | |
| 78 ], | |
| 79 'outputs': [ | |
| 80 '<(bindings_core_dart_output_dir)/Dart<(RULE_INPUT_ROOT).cpp', | |
| 81 '<(bindings_core_dart_output_dir)/Dart<(RULE_INPUT_ROOT).h', | |
| 82 '<(bindings_core_dart_output_dir)/<(RULE_INPUT_ROOT)_globals.pickle', | |
| 83 ], | |
| 84 # sanitize-win-build-log.sed uses a regex which matches this command | |
| 85 # line (Python script + .idl file being processed). | |
| 86 # Update that regex if command line changes (other than changing flags) | |
| 87 'action': [ | |
| 88 'python', | |
| 89 '-S', # skip 'import site' to speed up startup | |
| 90 '<(bindings_dart_scripts_dir)/compiler.py', | |
| 91 # FIXMEDART: Enable caching? | |
| 92 # '--cache-dir', | |
| 93 # '<(bindings_scripts_output_dir)', | |
| 94 '--output-dir', | |
| 95 '<(bindings_core_dart_output_dir)', | |
| 96 '--interfaces-info', | |
| 97 '<(bindings_modules_output_dir)/InterfacesInfoModules.pickle', | |
| 98 '--write-file-only-if-changed', | |
| 99 '<(write_file_only_if_changed)', | |
| 100 '<(RULE_INPUT_PATH)', | |
| 101 ], | |
| 102 'message': 'Generating Dart binding from <(RULE_INPUT_PATH)', | |
| 103 }], | |
| 104 }, | |
| 105 ################################################################################ | |
| 106 { | |
| 107 # GN version: //third_party/WebKit/Source/bindings/core/dart:bindings_core_d
art_generated_aggregate | |
| 108 'target_name': 'bindings_core_dart_generated_aggregate', | |
| 109 'type': 'none', | |
| 110 'actions': [{ | |
| 111 'action_name': 'generate_aggregate_bindings_core_dart', | |
| 112 'inputs': [ | |
| 113 '<(bindings_scripts_dir)/aggregate_generated_bindings.py', | |
| 114 '<(core_idl_files_list)', | |
| 115 ], | |
| 116 'outputs': [ | |
| 117 '<@(bindings_core_dart_generated_aggregate_files)', | |
| 118 ], | |
| 119 'action': [ | |
| 120 'python', | |
| 121 '<(bindings_scripts_dir)/aggregate_generated_bindings.py', | |
| 122 '--dart', | |
| 123 'core', | |
| 124 '<(core_idl_files_list)', | |
| 125 '--', | |
| 126 '<@(bindings_core_dart_generated_aggregate_files)', | |
| 127 ], | |
| 128 'message': 'Generating aggregate generated core Dart bindings files', | |
| 129 }], | |
| 130 # FIXME: Generate Dart Class IDs. | |
| 131 }, | |
| 132 ################################################################################ | |
| 133 { | |
| 134 # GN version: //third_party/WebKit/Source/bindings/core/dart:bindings_core_d
art_generated | |
| 135 'target_name': 'bindings_core_dart_generated', | |
| 136 'type': 'none', | |
| 137 'dependencies': [ | |
| 138 'bindings_core_dart_generated_aggregate', | |
| 139 'bindings_core_dart_generated_individual', | |
| 140 ], | |
| 141 'actions': [{ | |
| 142 'action_name': 'generate_core_dart_stamp_file', | |
| 143 'inputs': [ | |
| 144 '<(dart_dir)/tools/create_timestamp_file.py', | |
| 145 ], | |
| 146 'outputs': [ | |
| 147 '<(bindings_core_dart_stamp_file)', | |
| 148 ], | |
| 149 'action': [ | |
| 150 'python', | |
| 151 '<(dart_dir)/tools/create_timestamp_file.py', | |
| 152 '<(bindings_core_dart_stamp_file)', | |
| 153 ], | |
| 154 'message': 'Finished generating core Dart bindings files', | |
| 155 }], | |
| 156 }, | |
| 157 ################################################################################ | |
| 158 ], # targets | |
| 159 } | |
| OLD | NEW |