Ejemplo n.º 1
0
def write_header(data_source_name,
                 all_cmds,
                 api,
                 preamble,
                 path,
                 lib,
                 ns="",
                 prefix=None,
                 export=""):
    file_name = "%s_loader_autogen.h" % api
    header_path = registry_xml.path_to(path, file_name)

    def pre(cmd):
        if prefix == None:
            return cmd
        return prefix + cmd[len(api):]

    with open(header_path, "w") as out:
        var_protos = [
            "%sextern PFN%sPROC %s%s;" % (export, cmd.upper(), ns, pre(cmd))
            for cmd in all_cmds
        ]
        loader_header = template_loader_h.format(
            script_name=os.path.basename(sys.argv[0]),
            data_source_name=data_source_name,
            year=date.today().year,
            function_pointers="\n".join(var_protos),
            api_upper=api.upper(),
            api_lower=api,
            preamble=preamble,
            export=export,
            lib=lib.upper())

        out.write(loader_header)
        out.close()
Ejemplo n.º 2
0
def gen_libcl_loader():

    xml = registry_xml.RegistryXML("cl.xml")
    for major_version, minor_version in registry_xml.CL_VERSIONS:
        name_prefix = "CL_VERSION_"
        annotation = "%d_%d" % (major_version, minor_version)
        feature_name = "%s%s" % (name_prefix, annotation)
        xml.AddCommands(feature_name, annotation)
    all_cmds = xml.all_cmd_names.get_all_commands()

    path = os.path.join("..", "src", "libOpenCL")
    source_path = registry_xml.path_to(path, "cl_loader_autogen.cpp")

    with open(source_path, "w") as out:
        # TODO(jplate): use first setters after migration in http://anglebug.com/5759
        # setter = "    cl_loader.%s = reinterpret_cast<cl_api_%s>(loadProc(\"CL_%s\"));"
        # setters = [setter % (cmd, cmd, cmd[2:]) for cmd in all_cmds]
        setter = "    cl_loader.%s = CL_%s;"
        setters = [setter % (cmd, cmd[2:]) for cmd in all_cmds]

        loader_source = template_cl_loader_cpp.format(
            script_name=os.path.basename(sys.argv[0]),
            data_source_name="cl.xml",
            set_pointers="\n".join(setters))

        out.write(loader_source)
        out.close()
Ejemplo n.º 3
0
def write_source(data_source_name, all_cmds, api, path, ns = "", prefix = None):
    file_name = "%s_loader_autogen.cpp" % api
    source_path = registry_xml.path_to(path, file_name)
    if prefix == None:
        prefix = api
    def pre(cmd):
        return prefix + cmd[len(api):]

    with open(source_path, "w") as out:
        var_defs = ["PFN%sPROC %s%s;" % (cmd.upper(), ns, pre(cmd)) for cmd in all_cmds]

        setter = "    %s%s = reinterpret_cast<PFN%sPROC>(loadProc(\"%s\"));"
        setters = [setter % (ns, pre(cmd), cmd.upper(), pre(cmd)) for cmd in all_cmds]

        loader_source = template_loader_cpp.format(
            script_name = os.path.basename(sys.argv[0]),
            data_source_name = data_source_name,
            year = date.today().year,
            function_pointers = "\n".join(var_defs),
            set_pointers = "\n".join(setters),
            api_upper = api.upper(),
            api_lower = api)

        out.write(loader_source)
        out.close()
Ejemplo n.º 4
0
def write_source(data_source_name, all_cmds, api, path, ns="", prefix=None, export=""):
    file_name = "%s_loader_autogen.cpp" % api
    source_path = registry_xml.path_to(path, file_name)

    def pre(cmd):
        if prefix == None:
            return cmd
        return prefix + cmd[len(api):]

    with open(source_path, "w") as out:
        var_defs = ["%sPFN%sPROC %s%s;" % (export, cmd.upper(), ns, pre(cmd)) for cmd in all_cmds]

        setter = "    %s%s = reinterpret_cast<PFN%sPROC>(loadProc(\"%s\"));"
        setters = [setter % (ns, pre(cmd), cmd.upper(), pre(cmd)) for cmd in all_cmds]

        loader_source = template_loader_cpp.format(
            script_name=os.path.basename(sys.argv[0]),
            data_source_name=data_source_name,
            year=date.today().year,
            function_pointers="\n".join(var_defs),
            set_pointers="\n".join(setters),
            api_upper=api.upper(),
            api_lower=api,
            load_fn_name="Load%s%s" % (prefix if prefix else "", api.upper()))

        out.write(loader_source)
        out.close()
Ejemplo n.º 5
0
def write_header(data_source_name,
                 all_cmds,
                 api,
                 preamble,
                 path,
                 lib,
                 ns="",
                 prefix=None,
                 export=""):
    file_name = "%s_loader_autogen.h" % api
    header_path = registry_xml.path_to(path, file_name)

    def pre(cmd):
        if prefix == None:
            return cmd
        return prefix + cmd[len(api):]

    with open(header_path, "w") as out:
        var_protos = [
            "%sextern PFN%sPROC %s%s;" % (export, cmd.upper(), ns, pre(cmd)) for cmd in all_cmds
        ]
        loader_header = template_loader_h.format(
            script_name=os.path.basename(sys.argv[0]),
            data_source_name=data_source_name,
            year=date.today().year,
            function_pointers="\n".join(var_protos),
            api_upper=api.upper(),
            api_lower=api,
            preamble=preamble,
            export=export,
            lib=lib.upper(),
            load_fn_name="Load%s%s" % (prefix if prefix else "", api.upper()))

        out.write(loader_header)
        out.close()
Ejemplo n.º 6
0
def write_header(data_source_name,
                 all_cmds,
                 api,
                 preamble,
                 path,
                 lib,
                 ns="",
                 prefix=None,
                 export="",
                 internal_prefix=DEFAULT_INTERNAL_PREFIX,
                 file_prefix=""):
    file_name = "%s%s_loader_autogen.h" % (file_prefix, api)
    header_path = registry_xml.path_to(path, file_name)

    def pre(cmd):
        if prefix == None:
            return cmd
        return prefix + cmd[len(api):]

    with open(header_path, "w") as out:
        defines = [
            "#define %s%s %s%s%s" %
            (ns, pre(cmd), internal_prefix, ns, pre(cmd)) for cmd in all_cmds
        ]
        var_protos = [
            "%sextern PFN%sPROC %s%s%s;" %
            (export, cmd.upper(), internal_prefix, ns, pre(cmd))
            for cmd in all_cmds
        ]
        loader_header = template_loader_h.format(
            script_name=os.path.basename(sys.argv[0]),
            data_source_name=data_source_name,
            year=date.today().year,
            defines="\n".join(defines),
            function_pointers="\n".join(var_protos),
            api_upper=api.upper(),
            api_lower=api,
            preamble=preamble,
            export=export,
            lib=lib.upper(),
            load_fn_name="Load%s%s" % (prefix if prefix else "", api.upper()),
            file_prefix=file_prefix)

        out.write(loader_header)
        out.close()
Ejemplo n.º 7
0
def write_source(data_source_name,
                 all_cmds,
                 api,
                 path,
                 ns="",
                 prefix=None,
                 export="",
                 internal_prefix=DEFAULT_INTERNAL_PREFIX,
                 file_prefix=""):
    file_name = "%s%s_loader_autogen.cpp" % (file_prefix, api)
    source_path = registry_xml.path_to(path, file_name)

    def pre(cmd):
        if prefix == None:
            return cmd
        return prefix + cmd[len(api):]

    with open(source_path, "w") as out:
        var_defs = [
            "%sPFN%sPROC %s%s%s;" %
            (export, cmd.upper(), internal_prefix, ns, pre(cmd))
            for cmd in all_cmds
        ]

        setter = "    %s%s%s = reinterpret_cast<PFN%sPROC>(loadProc(\"%s\"));"
        setters = [
            setter % (internal_prefix, ns, pre(cmd), cmd.upper(), pre(cmd))
            for cmd in all_cmds
        ]

        loader_source = template_loader_cpp.format(
            script_name=os.path.basename(sys.argv[0]),
            data_source_name=data_source_name,
            year=date.today().year,
            function_pointers="\n".join(var_defs),
            set_pointers="\n".join(setters),
            api_upper=api.upper(),
            api_lower=api,
            load_fn_name="Load%s%s" % (prefix if prefix else "", api.upper()),
            file_prefix=file_prefix)

        out.write(loader_source)
        out.close()