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()
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()
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()
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()
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()
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()
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()