Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(257)

Unified Diff: Source/bindings/generated_bindings.gyp

Issue 300133002: Split generated_bindings.gyp into core and modules (1/2) (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Fix missing include Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/bindings/generated.gyp ('k') | Source/bindings/idl.gypi » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/bindings/generated_bindings.gyp
diff --git a/Source/bindings/generated_bindings.gyp b/Source/bindings/generated_bindings.gyp
deleted file mode 100644
index 1107e4f2f9568ecad08ede8de6975e580257fd30..0000000000000000000000000000000000000000
--- a/Source/bindings/generated_bindings.gyp
+++ /dev/null
@@ -1,417 +0,0 @@
-#
-# Copyright (C) 2013 Google Inc. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following disclaimer
-# in the documentation and/or other materials provided with the
-# distribution.
-# * Neither the name of Google Inc. nor the names of its
-# contributors may be used to endorse or promote products derived from
-# this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-
-# Generate IDL bindings, together with auxiliary files
-# (constructors on global objects, aggregate bindings files).
-#
-# Design doc: http://www.chromium.org/developers/design-documents/idl-build
-
-{
- 'includes': [
- 'bindings.gypi',
- '../core/core.gypi',
- '../modules/modules.gypi',
- ],
-
- 'variables': {
- # IDL file lists; see: http://www.chromium.org/developers/web-idl-interfaces
- #
- # Interface IDL files / Dependency IDL files
- # Interface IDL files: generate individual bindings (includes testing)
- 'interface_idl_files': [
- '<@(static_interface_idl_files)',
- '<@(generated_interface_idl_files)',
- ],
- # Dependency IDL files: don't generate individual bindings, but do process
- # in IDL dependency computation, and count as build dependencies
- 'dependency_idl_files': [
- '<@(static_dependency_idl_files)',
- '<@(generated_dependency_idl_files)',
- ],
- # Main interface IDL files (excluding dependencies and testing)
- # are included as properties on global objects, and in aggregate bindings
- 'main_interface_idl_files': [
- '<@(core_idl_files)',
- '<@(modules_idl_files)',
- ],
- # Write lists of main IDL files to a file, so that the command lines don't
- # exceed OS length limits.
- 'main_interface_idl_files_list': '<|(main_interface_idl_files_list.tmp <@(main_interface_idl_files))',
- 'core_idl_files_list': '<|(core_idl_files_list.tmp <@(core_idl_files))',
- 'modules_idl_files_list': '<|(modules_idl_files_list.tmp <@(modules_idl_files))',
-
- # Static IDL files / Generated IDL files
- # Paths need to be passed separately for static and generated files, as
- # static files are listed in a temporary file (b/c too long for command
- # line), but generated files must be passed at the command line, as their
- # paths are not fixed at GYP time, when the temporary file is generated,
- # because their paths depend on the build directory, which varies.
- 'static_idl_files': [
- '<@(static_interface_idl_files)',
- '<@(static_dependency_idl_files)',
- ],
- 'static_idl_files_list': '<|(static_idl_files_list.tmp <@(static_idl_files))',
- 'generated_idl_files': [
- '<@(generated_interface_idl_files)',
- '<@(generated_dependency_idl_files)',
- ],
-
- # Static IDL files
- 'static_interface_idl_files': [
- '<@(core_idl_files)',
- '<@(webcore_testing_idl_files)',
- '<@(modules_idl_files)',
- ],
- 'static_dependency_idl_files': [
- '<@(core_dependency_idl_files)',
- '<@(modules_dependency_idl_files)',
- '<@(modules_testing_dependency_idl_files)',
- ],
-
- # Generated IDL files
- 'generated_interface_idl_files': [
- '<@(generated_webcore_testing_idl_files)', # interfaces
- ],
- 'generated_dependency_idl_files': [
- '<@(generated_global_constructors_idl_files)', # partial interfaces
- ],
-
- 'generated_global_constructors_idl_files': [
- '<(blink_output_dir)/WindowConstructors.idl',
- '<(blink_output_dir)/SharedWorkerGlobalScopeConstructors.idl',
- '<(blink_output_dir)/DedicatedWorkerGlobalScopeConstructors.idl',
- '<(blink_output_dir)/ServiceWorkerGlobalScopeConstructors.idl',
- ],
-
- 'generated_global_constructors_header_files': [
- '<(blink_output_dir)/WindowConstructors.h',
- '<(blink_output_dir)/SharedWorkerGlobalScopeConstructors.h',
- '<(blink_output_dir)/DedicatedWorkerGlobalScopeConstructors.h',
- '<(blink_output_dir)/ServiceWorkerGlobalScopeConstructors.h',
- ],
-
-
- # Python source
- 'jinja_module_files': [
- # jinja2/__init__.py contains version string, so sufficient for package
- '<(DEPTH)/third_party/jinja2/__init__.py',
- '<(DEPTH)/third_party/markupsafe/__init__.py', # jinja2 dep
- ],
- 'idl_lexer_parser_files': [
- # PLY (Python Lex-Yacc)
- '<(DEPTH)/third_party/ply/lex.py',
- '<(DEPTH)/third_party/ply/yacc.py',
- # Web IDL lexer/parser (base parser)
- '<(DEPTH)/tools/idl_parser/idl_lexer.py',
- '<(DEPTH)/tools/idl_parser/idl_node.py',
- '<(DEPTH)/tools/idl_parser/idl_parser.py',
- # Blink IDL lexer/parser/constructor
- 'scripts/blink_idl_lexer.py',
- 'scripts/blink_idl_parser.py',
- ],
- 'idl_compiler_files': [
- 'scripts/idl_compiler.py',
- # Blink IDL front end (ex-lexer/parser)
- 'scripts/idl_definitions.py',
- 'scripts/idl_reader.py',
- 'scripts/idl_validator.py',
- 'scripts/interface_dependency_resolver.py',
- # V8 code generator
- 'scripts/code_generator_v8.py',
- 'scripts/v8_attributes.py',
- 'scripts/v8_callback_interface.py',
- 'scripts/v8_globals.py',
- 'scripts/v8_interface.py',
- 'scripts/v8_methods.py',
- 'scripts/v8_types.py',
- 'scripts/v8_utilities.py',
- ],
-
- # Jinja templates
- 'code_generator_template_files': [
- 'templates/attributes.cpp',
- 'templates/callback_interface.cpp',
- 'templates/callback_interface.h',
- 'templates/interface_base.cpp',
- 'templates/interface.cpp',
- 'templates/interface.h',
- 'templates/methods.cpp',
- ],
- },
-
- 'targets': [
-################################################################################
- {
- 'target_name': 'global_constructors_idls',
- 'type': 'none',
- 'actions': [{
- 'action_name': 'generate_global_constructors_idls',
- 'inputs': [
- 'scripts/generate_global_constructors.py',
- 'scripts/utilities.py',
- # Only includes main IDL files (exclude dependencies and testing,
- # which should not appear on global objects).
- '<(main_interface_idl_files_list)',
- '<@(main_interface_idl_files)',
- ],
- 'outputs': [
- '<@(generated_global_constructors_idl_files)',
- '<@(generated_global_constructors_header_files)',
- ],
- 'action': [
- 'python',
- 'scripts/generate_global_constructors.py',
- '--idl-files-list',
- '<(main_interface_idl_files_list)',
- '--write-file-only-if-changed',
- '<(write_file_only_if_changed)',
- '--',
- 'Window',
- '<(blink_output_dir)/WindowConstructors.idl',
- 'SharedWorkerGlobalScope',
- '<(blink_output_dir)/SharedWorkerGlobalScopeConstructors.idl',
- 'DedicatedWorkerGlobalScope',
- '<(blink_output_dir)/DedicatedWorkerGlobalScopeConstructors.idl',
- 'ServiceWorkerGlobalScope',
- '<(blink_output_dir)/ServiceWorkerGlobalScopeConstructors.idl',
- ],
- 'message': 'Generating IDL files for constructors on global objects',
- }]
- },
-################################################################################
- {
- 'target_name': 'interfaces_info',
- 'type': 'none',
- 'dependencies': [
- # Generated IDLs
- 'global_constructors_idls',
- '../core/core_generated.gyp:generated_testing_idls',
- ],
- 'actions': [{
- 'action_name': 'compute_interfaces_info',
- 'inputs': [
- 'scripts/compute_interfaces_info.py',
- 'scripts/utilities.py',
- '<(static_idl_files_list)',
- '<@(static_idl_files)',
- '<@(generated_idl_files)',
- ],
- 'outputs': [
- '<(blink_output_dir)/InterfacesInfo.pickle',
- ],
- 'action': [
- 'python',
- 'scripts/compute_interfaces_info.py',
- '--idl-files-list',
- '<(static_idl_files_list)',
- '--interfaces-info-file',
- '<(blink_output_dir)/InterfacesInfo.pickle',
- '--write-file-only-if-changed',
- '<(write_file_only_if_changed)',
- '--',
- # Generated files must be passed at command line
- '<@(generated_idl_files)',
- ],
- 'message': 'Computing global information about IDL files',
- }]
- },
-################################################################################
- {
- # A separate pre-caching step is *not required* to use lex/parse table
- # caching in PLY, as the caches are concurrency-safe.
- # However, pre-caching ensures that all compiler processes use the cached
- # files (hence maximizing speed), instead of early processes building the
- # tables themselves (as they've not yet been written when they start).
- 'target_name': 'cached_lex_yacc_tables',
- 'type': 'none',
- 'actions': [{
- 'action_name': 'cache_lex_yacc_tables',
- 'inputs': [
- '<@(idl_lexer_parser_files)',
- ],
- 'outputs': [
- '<(bindings_output_dir)/lextab.py',
- '<(bindings_output_dir)/parsetab.pickle',
- ],
- 'action': [
- 'python',
- 'scripts/blink_idl_parser.py',
- '<(bindings_output_dir)',
- ],
- 'message': 'Caching PLY lex & yacc lex/parse tables',
- }],
- },
-################################################################################
- {
- # A separate pre-caching step is *required* to use bytecode caching in
- # Jinja (which improves speed significantly), as the bytecode cache is
- # not concurrency-safe on write; details in code_generator_v8.py.
- 'target_name': 'cached_jinja_templates',
- 'type': 'none',
- 'actions': [{
- 'action_name': 'cache_jinja_templates',
- 'inputs': [
- '<@(jinja_module_files)',
- 'scripts/code_generator_v8.py',
- '<@(code_generator_template_files)',
- ],
- 'outputs': [
- '<(bindings_output_dir)/cached_jinja_templates.stamp', # Dummy to track dependency
- ],
- 'action': [
- 'python',
- 'scripts/code_generator_v8.py',
- '<(bindings_output_dir)',
- '<(bindings_output_dir)/cached_jinja_templates.stamp',
- ],
- 'message': 'Caching bytecode of Jinja templates',
- }],
- },
-################################################################################
- {
- 'target_name': 'individual_generated_bindings',
- 'type': 'none',
- # The 'binding' rule generates .h files, so mark as hard_dependency, per:
- # https://code.google.com/p/gyp/wiki/InputFormatReference#Linking_Dependencies
- 'hard_dependency': 1,
- 'dependencies': [
- 'interfaces_info',
- 'cached_lex_yacc_tables',
- 'cached_jinja_templates',
- '../core/core_generated.gyp:generated_testing_idls',
- ],
- 'sources': [
- '<@(interface_idl_files)',
- ],
- 'rules': [{
- 'rule_name': 'binding',
- 'extension': 'idl',
- 'msvs_external_rule': 1,
- 'inputs': [
- '<@(idl_lexer_parser_files)', # to be explicit (covered by parsetab)
- '<@(idl_compiler_files)',
- '<(bindings_output_dir)/lextab.py',
- '<(bindings_output_dir)/parsetab.pickle',
- '<(bindings_output_dir)/cached_jinja_templates.stamp',
- 'IDLExtendedAttributes.txt',
- # If the dependency structure or public interface info (e.g.,
- # [ImplementedAs]) changes, we rebuild all files, since we're not
- # computing dependencies file-by-file in the build.
- # This data is generally stable.
- '<(blink_output_dir)/InterfacesInfo.pickle',
- # Further, if any dependency (partial interface or implemented
- # interface) changes, rebuild everything, since every IDL potentially
- # depends on them, because we're not computing dependencies
- # file-by-file.
- # FIXME: This is too conservative, and causes excess rebuilds:
- # compute this file-by-file. http://crbug.com/341748
- '<@(dependency_idl_files)',
- ],
- 'outputs': [
- '<(bindings_output_dir)/V8<(RULE_INPUT_ROOT).cpp',
- '<(bindings_output_dir)/V8<(RULE_INPUT_ROOT).h',
- ],
- # sanitize-win-build-log.sed uses a regex which matches this command
- # line (Python script + .idl file being processed).
- # Update that regex if command line changes (other than changing flags)
- 'action': [
- 'python',
- '-S', # skip 'import site' to speed up startup
- 'scripts/idl_compiler.py',
- '--output-dir',
- '<(bindings_output_dir)',
- '--interfaces-info',
- '<(blink_output_dir)/InterfacesInfo.pickle',
- '--write-file-only-if-changed',
- '<(write_file_only_if_changed)',
- '<(RULE_INPUT_PATH)',
- ],
- 'message': 'Generating binding from <(RULE_INPUT_PATH)',
- }],
- },
-################################################################################
- {
- 'target_name': 'bindings_core_generated_aggregate',
- 'type': 'none',
- 'actions': [{
- 'action_name': 'generate_aggregate_bindings_core',
- 'inputs': [
- 'scripts/aggregate_generated_bindings.py',
- '<(core_idl_files_list)',
- ],
- 'outputs': [
- '<@(bindings_core_generated_aggregate_files)',
- ],
- 'action': [
- 'python',
- 'scripts/aggregate_generated_bindings.py',
- '<(core_idl_files_list)',
- '--',
- '<@(bindings_core_generated_aggregate_files)',
- ],
- 'message': 'Generating aggregate generated core bindings files',
- }],
- },
-################################################################################
- {
- 'target_name': 'bindings_modules_generated_aggregate',
- 'type': 'none',
- 'actions': [{
- 'action_name': 'generate_aggregate_bindings_modules',
- 'inputs': [
- 'scripts/aggregate_generated_bindings.py',
- '<(modules_idl_files_list)',
- ],
- 'outputs': [
- '<@(bindings_modules_generated_aggregate_files)',
- ],
- 'action': [
- 'python',
- 'scripts/aggregate_generated_bindings.py',
- '<(modules_idl_files_list)',
- '--',
- '<@(bindings_modules_generated_aggregate_files)',
- ],
- 'message': 'Generating aggregate generated modules bindings files',
- }],
- },
-################################################################################
- {
- 'target_name': 'generated_bindings',
- 'type': 'none',
- 'dependencies': [
- 'bindings_core_generated_aggregate',
- 'bindings_modules_generated_aggregate',
- 'individual_generated_bindings',
- ],
- },
-################################################################################
- ], # targets
-}
« no previous file with comments | « Source/bindings/generated.gyp ('k') | Source/bindings/idl.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698