Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
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)
Ejemplo n.º 3
0
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)
Ejemplo n.º 5
0
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)
Ejemplo n.º 8
0
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])
Ejemplo n.º 9
0
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())
Ejemplo n.º 10
0
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])
Ejemplo n.º 12
0
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)
Ejemplo n.º 13
0
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]))
Ejemplo n.º 14
0
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)
Ejemplo n.º 15
0
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)
Ejemplo n.º 16
0
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)
Ejemplo n.º 24
0
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])
Ejemplo n.º 25
0
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)