def main(args): if len(args) <= 4: raise Exception('Expected at least 5 arguments.') component_dir = args[1] input_file_name = args[2] in_out_break_index = args.index('--') output_file_names = args[in_out_break_index + 1:] idl_file_names = read_idl_files_list_from_file(input_file_name, is_gyp_format=True) components = set( [idl_filename_to_component(filename) for filename in idl_file_names]) if len(components) != 1: raise Exception( 'Cannot aggregate generated codes in different components') aggregate_partial_interfaces = component_dir not in components files_meta_data = extract_meta_data(idl_file_names) total_partitions = len(output_file_names) for partition, file_name in enumerate(output_file_names): files_meta_data_this_partition = [ meta_data for meta_data in files_meta_data if hash(meta_data['name']) % total_partitions == partition ] file_contents = generate_content(component_dir, aggregate_partial_interfaces, files_meta_data_this_partition) write_content(file_contents, file_name)
def main(): options, input_filename = parse_options() info_provider = create_component_info_provider( options.info_dir, options.target_component) if options.generate_impl or options.read_idl_list_from_file: # |input_filename| should be a file which contains a list of IDL # dictionary paths. input_filenames = read_idl_files_list_from_file(input_filename, is_gyp_format=True) else: input_filenames = [input_filename] if options.generate_impl: if not info_provider.interfaces_info: raise Exception('Interfaces info is required to generate ' 'impl classes') generate_dictionary_impl(CodeGeneratorDictionaryImpl, info_provider, options, input_filenames) generate_union_type_containers(CodeGeneratorUnionType, info_provider, options) generate_callback_function_impl(CodeGeneratorCallbackFunction, info_provider, options) else: generate_bindings(CodeGeneratorV8, info_provider, options, input_filenames)
def main(): options, args = parse_options() # IDL files are passed in a file, due to OS command line length limits idl_files = read_idl_files_list_from_file(options.idl_files_list, is_gyp_format=False) # There may be other IDL files passed as positional arguments at the end. idl_files.extend(args) # Compute information for individual files # Information is stored in global variables interfaces_info and # partial_interface_files. info_collector = InterfaceInfoCollector(options.root_directory, options.extended_attributes, options.cache_directory) for idl_filename in idl_files: is_dependency = False if options.dependency_idl_files: is_dependency = idl_filename in options.dependency_idl_files info_collector.collect_info(idl_filename, is_dependency) write_pickle_file(options.interfaces_info_file, info_collector.get_info_as_dict()) write_pickle_file(options.component_info_file, info_collector.get_component_info_as_dict())
def main(args): if len(args) <= 4: raise Exception('Expected at least 5 arguments.') component_dir = args[1] input_file_name = args[2] in_out_break_index = args.index('--') output_file_names = args[in_out_break_index + 1:] idl_file_names = read_idl_files_list_from_file(input_file_name) components = set([idl_filename_to_component(filename) for filename in idl_file_names]) if len(components) != 1: raise Exception('Cannot aggregate generated codes in different components') aggregate_partial_interfaces = component_dir not in components files_meta_data = extract_meta_data(idl_file_names) total_partitions = len(output_file_names) for partition, file_name in enumerate(output_file_names): files_meta_data_this_partition = [ meta_data for meta_data in files_meta_data if hash(meta_data['name']) % total_partitions == partition] file_contents = generate_content(component_dir, aggregate_partial_interfaces, files_meta_data_this_partition) write_content(file_contents, file_name)
def main(): options, input_filename = parse_options() info_provider = create_component_info_provider(options.info_dir, options.target_component) if options.generate_impl or options.read_idl_list_from_file: # |input_filename| should be a file which contains a list of IDL # dictionary paths. input_filenames = read_idl_files_list_from_file(input_filename) else: input_filenames = [input_filename] if options.generate_impl: if not info_provider.interfaces_info: raise Exception('Interfaces info is required to generate ' 'impl classes') generate_dictionary_impl(CodeGeneratorDictionaryImpl, info_provider, options, input_filenames) generate_union_type_containers(CodeGeneratorUnionType, info_provider, options) if not options.generate_impl_skip_callback_function: generate_callback_function_impl(CodeGeneratorCallbackFunction, info_provider, options) else: generate_bindings(CodeGeneratorV8, info_provider, options, input_filenames)
def main(): options, filenames = parse_options() component = options.component idl_filenames = read_idl_files_list_from_file(filenames[0], is_gyp_format=False) interface_names = [idl_filename_to_interface_name(file_path) for file_path in idl_filenames] file_contents = generate_content(component, interface_names) write_content(file_contents, filenames[1])
def main(): options = parse_options() idl_file_names = read_idl_files_list_from_file( options.idl_files_list, is_gyp_format=options.gyp_format_list) meta_data_list = extract_meta_data(idl_file_names) interface_names = [ 'V8%sPartial' % meta_data['name'] for meta_data in meta_data_list ] interface_names.sort() includes = [ '#include "bindings/modules/v8/%s.h"' % interface_name for interface_name in interface_names ] initialize_calls = [ ' %s::initialize();' % interface_name for interface_name in interface_names ] content = _INIT_PARTIAL_INTERFACE % (_COPYRIGHT, '\n'.join(includes), '\n'.join(initialize_calls)) write_file(content, options.output)
def main(): options, filenames = parse_options() component = options.component idl_filenames = read_idl_files_list_from_file(filenames[0]) basenames = [idl_filename_to_basename(file_path) for file_path in idl_filenames] file_contents = generate_content(component, basenames) write_content(file_contents, filenames[1])
def main(): options, _ = parse_options() idl_file_names = utilities.read_idl_files_list_from_file(options.idl_list_file) parser = blink_idl_parser.BlinkIDLParser() collector = Collector(component=options.component, parser=parser) collector.collect_from_idl_files(idl_file_names) utilities.write_pickle_file(options.output, collector.get_collection())
def main(): options, _ = parse_options() filepaths = utilities.read_idl_files_list_from_file(options.idl_list_file) parser = blink_idl_parser.BlinkIDLParser() ast_group = web_idl.AstGroup(web_idl.Component(options.component)) for filepath in filepaths: ast_group.add_ast_node(blink_idl_parser.parse_file(parser, filepath)) ast_group.write_to_file(options.output)
def main(): options, filenames = parse_options() component = options.component idl_filenames = read_idl_files_list_from_file(filenames[0], is_gyp_format=False) basenames = [idl_filename_to_basename(file_path) for file_path in idl_filenames] file_contents = generate_content(component, basenames, options.snake_case_generated_files) write_content(file_contents, filenames[1])
def generate_dictionary_impl(options, input_filename): idl_compiler = IdlCompilerDictionaryImpl( options.impl_output_directory, cache_directory=options.cache_directory, interfaces_info_filename=options.interfaces_info_file, only_if_changed=options.write_file_only_if_changed) idl_filenames = read_idl_files_list_from_file(input_filename) for idl_filename in idl_filenames: idl_compiler.compile_file(idl_filename)
def main(): options, filenames = parse_options() component = options.component idl_filenames = read_idl_files_list_from_file(abs(filenames[0]), is_gyp_format=False) interface_names = [ idl_filename_to_interface_name(file_path) for file_path in idl_filenames ] file_contents = generate_content(component, interface_names) write_content(file_contents, abs(filenames[1]))
def main(): options, args = parse_options() if args: raise RuntimeError('unknown arguments {}'.format(args)) filepaths = utilities.read_idl_files_list_from_file(options.idl_list_file) parser = blink_idl_parser.BlinkIDLParser() ast_group = web_idl.AstGroup(options.component) for filepath in filepaths: ast_group.add_ast_node(blink_idl_parser.parse_file(parser, filepath)) ast_group.write_to_file(options.output)
def generate_dictionary_impl(options, input_filename): info_provider = create_component_info_provider( options.info_dir, options.target_component) idl_compiler = IdlCompilerDictionaryImpl( options.impl_output_directory, cache_directory=options.cache_directory, info_provider=info_provider, only_if_changed=options.write_file_only_if_changed) idl_filenames = read_idl_files_list_from_file(input_filename) for idl_filename in idl_filenames: idl_compiler.compile_file(idl_filename)
def generate_dictionary_impl(options, input_filename): info_provider = create_component_info_provider(options.info_dir, options.target_component) idl_compiler = IdlCompilerDictionaryImpl( options.impl_output_directory, cache_directory=options.cache_directory, info_provider=info_provider, only_if_changed=options.write_file_only_if_changed) idl_filenames = read_idl_files_list_from_file(input_filename) for idl_filename in idl_filenames: idl_compiler.compile_file(idl_filename)
def main(): opts, _ = parse_args() # TODO(peria): get rid of |info_provider| info_provider = create_component_info_provider( opts.info_dir, opts.target_component) generator = ExternalReferenceTableGenerator(opts, info_provider) idl_files = utilities.read_idl_files_list_from_file(opts.idl_files_list, False) for idl_file in idl_files: generator.process_idl_file(idl_file) output_code = generator.generate() output_path = opts.output write_file(output_code, output_path)
def main(): opts, _ = parse_args() # TODO(peria): get rid of |info_provider| info_provider = create_component_info_provider(opts.info_dir, opts.target_component) generator = ExternalReferenceTableGenerator(opts, info_provider) idl_files = utilities.read_idl_files_list_from_file(opts.idl_files_list) for idl_file in idl_files: generator.process_idl_file(idl_file) output_code = generator.generate() output_path = opts.output write_file(output_code, output_path)
def main(): options, _ = parse_options() # IDL files are passed in a file, due to OS command line length limits idl_files = read_idl_files_list_from_file(options.idl_files_list) # Compute information for individual files # Information is stored in global variables interfaces_info and # partial_interface_files. info_collector = InterfaceInfoCollector(options.cache_directory) for idl_filename in idl_files: info_collector.collect_info(idl_filename) write_pickle_file(options.interfaces_info_file, info_collector.get_info_as_dict()) write_pickle_file(options.component_info_file, info_collector.get_component_info_as_dict())
def main(): options, _ = parse_options() # IDL files are passed in a file, due to OS command line length limits idl_files = read_idl_files_list_from_file(options.idl_files_list, is_gyp_format=False) # Compute information for individual files # Information is stored in global variables interfaces_info and # partial_interface_files. info_collector = InterfaceInfoCollector(options.cache_directory) for idl_filename in idl_files: info_collector.collect_info(idl_filename) write_pickle_file(options.interfaces_info_file, info_collector.get_info_as_dict()) write_pickle_file(options.component_info_file, info_collector.get_component_info_as_dict())
def main(args): if len(args) <= 4: raise Exception('Expected at least 5 arguments.') component_dir = args[1] input_file_name = args[2] in_out_break_index = args.index('--') output_file_names = args[in_out_break_index + 1:] idl_file_names = read_idl_files_list_from_file(input_file_name) files_meta_data = extract_meta_data(idl_file_names) total_partitions = len(output_file_names) for partition, file_name in enumerate(output_file_names): files_meta_data_this_partition = [ meta_data for meta_data in files_meta_data if hash(meta_data['name']) % total_partitions == partition] file_contents = generate_content(component_dir, files_meta_data_this_partition) write_content(file_contents, file_name)
def main(args): if len(args) <= 4: raise Exception('Expected at least 5 arguments.') component_dir = args[1] input_file_name = args[2] in_out_break_index = args.index('--') output_file_names = args[in_out_break_index + 1:] idl_file_names = read_idl_files_list_from_file(input_file_name) files_meta_data = extract_meta_data(idl_file_names) total_partitions = len(output_file_names) for partition, file_name in enumerate(output_file_names): files_meta_data_this_partition = [ meta_data for meta_data in files_meta_data if hash(meta_data['name']) % total_partitions == partition ] file_contents = generate_content(component_dir, files_meta_data_this_partition) write_content(file_contents, file_name)
def main(): options = parse_options() idl_file_names = read_idl_files_list_from_file(options.idl_files_list, is_gyp_format=options.gyp_format_list) meta_data_list = extract_meta_data(idl_file_names) interface_names = ['V8%sPartial' % meta_data['name'] for meta_data in meta_data_list] interface_names.sort() includes = ['#include "bindings/modules/v8/%s.h"' % interface_name for interface_name in interface_names] initialize_calls = [' %s::initialize();' % interface_name for interface_name in interface_names] content = _INIT_PARTIAL_INTERFACE % ( _COPYRIGHT, '\n'.join(includes), '\n'.join(initialize_calls)) write_file(content, options.output)
def main(): options, input_filename = parse_options() info_provider = create_component_info_provider(options.info_dir, options.target_component) if options.generate_impl: if not info_provider.interfaces_info: raise Exception('Interfaces info is required to generate ' 'union types containers') # |input_filename| should be a file which contains a list of IDL # dictionary paths. input_filenames = read_idl_files_list_from_file(input_filename, is_gyp_format=True) generate_dictionary_impl(CodeGeneratorDictionaryImpl, info_provider, options, input_filenames) generate_union_type_containers(CodeGeneratorUnionType, info_provider, options) generate_callback_function_impl(CodeGeneratorCallbackFunction, info_provider, options) else: # |input_filename| should be a path of an IDL file. generate_bindings(CodeGeneratorV8, info_provider, options, [input_filename])
def main(): options = parse_options() idl_file_names = read_idl_files_list_from_file(options.idl_files_list) meta_data_list = extract_meta_data(idl_file_names) interface_names = [ 'V8%sPartial' % meta_data['basename'] for meta_data in meta_data_list ] interface_names.sort() includes = [ '#include "third_party/blink/renderer/bindings/modules/v8/%s.h"' % build_basename(interface_name) for interface_name in interface_names ] initialize_calls = [ ' %s::Initialize();' % interface_name for interface_name in interface_names ] content = _INIT_PARTIAL_INTERFACE % (_COPYRIGHT, '\n'.join(includes), '\n'.join(initialize_calls)) write_file(content, options.output)