blob: df0629c1a1eb9a7fe1d76ba8df15af83904e99fd [file] [log] [blame]
# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
#
# This file is meant to be included into a target to provide an action
# to compute global objects in a component.
#
# To use this, create a gyp target with the following form:
# {
# 'target_name': 'core_global_constructors_idls',
# 'dependencies': [
# 'component_global_objects',
# ],
# 'variables': {
# 'idl_files': '<(list_of_idl_files)',
# 'global_objects_file': '<(some_dir)/GlobalObjectsComponent.pickle',
# 'global_names_idl_files': [
# 'GlobalName',
# '<(blink_core_output_dir)/GlobalScopeComponentConstructors.idl',
# # ...
# ],
# 'outputs': [
# '<@(component_global_constructors_generated_idl_files)',
# '<@(component_global_constructors_generated_header_files)',
# ],
# },
# 'includes': ['path/to/this/gypi/file'],
# },
#
# Required variables:
# idl_files - List of .idl files that will be searched in.
# This should *only* contain main IDL files, excluding dependencies and
# testing, which should not appear on global objects.
# global_objects - Pickle file of global objects.
# global_names_idl_files - pairs (GlobalName, Constructors.idl)
# outputs - List of output files.
# Passed as a variable here, included by the template in the action.
#
# Spec: http://heycam.github.io/webidl/#Global
# http://heycam.github.io/webidl/#Exposed
# Design document: http://www.chromium.org/developers/design-documents/idl-build
{
'type': 'none',
'actions': [{
'action_name': 'generate_<(_target_name)',
'message': 'Generating IDL files for constructors on global objects for <(_target_name)',
'variables': {
'idl_files_list': '<|(<(_target_name)_idl_files_list.tmp <@(idl_files))',
},
'includes': ['scripts.gypi'],
'inputs': [
'<(bindings_scripts_dir)/generate_global_constructors.py',
'<(bindings_scripts_dir)/utilities.py',
'<(idl_files_list)',
'<@(idl_files)',
'<(global_objects_file)',
],
'outputs': ['<@(outputs)'],
'action': [
'python2',
'<(bindings_scripts_dir)/generate_global_constructors.py',
'--idl-files-list',
'<(idl_files_list)',
'--global-objects-file',
'<(global_objects_file)',
'--',
'<@(global_names_idl_files)',
],
}],
}