diff options
| author | Mark Lobodzinski <mark@lunarg.com> | 2016-12-29 13:09:21 -0700 |
|---|---|---|
| committer | Mark Lobodzinski <mark@lunarg.com> | 2017-01-10 10:21:32 -0700 |
| commit | 3912d811b95a1a8f1d3db71c2f39e73bad082b2b (patch) | |
| tree | 3f8b8cdad0d61ee480ede77dbdc6d7a6b2f11a7d /scripts | |
| parent | bbbd1ad7880d39eef0df6ee5d4ebe7e3c2c45fc0 (diff) | |
| download | usermoji-3912d811b95a1a8f1d3db71c2f39e73bad082b2b.tar.xz | |
scripts: Remove unused code from vk_helper.py
Struct size helper files are now generated by the helper_file_generator
script.
Change-Id: Ifcb0cceb9621f3f4bb41d948e9f0bb3fca7a0ea1
Diffstat (limited to 'scripts')
| -rwxr-xr-x | scripts/vk_helper.py | 188 |
1 files changed, 0 insertions, 188 deletions
diff --git a/scripts/vk_helper.py b/scripts/vk_helper.py index 9407ee70..8edafac2 100755 --- a/scripts/vk_helper.py +++ b/scripts/vk_helper.py @@ -39,7 +39,6 @@ def handle_args(): parser.add_argument('--rel_out_dir', required=False, default='vktrace_gen', help='Path relative to exec path to write output files. Will be created if needed.') parser.add_argument('--abs_out_dir', required=False, default=None, help='Absolute path to write output files. Will be created if needed.') parser.add_argument('--gen_struct_wrappers', required=False, action='store_true', default=False, help='Enable generation of struct wrapper classes.') - parser.add_argument('--gen_struct_sizes', required=False, action='store_true', default=False, help='Enable generation of struct sizes.') parser.add_argument('--quiet', required=False, action='store_true', default=False, help='Suppress output from running the script.') #parser.add_argument('--test', action='store_true', default=False, help='Run simple test.') return parser.parse_args() @@ -485,10 +484,6 @@ class StructWrapperGen: # Safe Struct (ss) header and source files self.ssh = CommonFileGen(self.safe_struct_header_filename) self.sss = CommonFileGen(self.safe_struct_source_filename) - self.size_helper_filename = os.path.join(out_dir, self.api_prefix+"_struct_size_helper.h") - self.size_helper_c_filename = os.path.join(out_dir, self.api_prefix+"_struct_size_helper.c") - self.size_helper_gen = CommonFileGen(self.size_helper_filename) - self.size_helper_c_gen = CommonFileGen(self.size_helper_c_filename) self.header_txt = "" self.definition_txt = "" self.quiet = quiet @@ -518,23 +513,6 @@ class StructWrapperGen: self.sss.setBody(self._generateSafeStructSource()) self.sss.generate() - def generateSizeHelper(self): - if not self.quiet: - print("Generating struct size helper") - self.size_helper_gen.setCopyright(self._generateCopyright()) - self.size_helper_gen.setHeader(self._generateSizeHelperHeader()) - self.size_helper_gen.setBody(self._generateSizeHelperFunctions()) - self.size_helper_gen.setFooter(self._generateSizeHelperFooter()) - self.size_helper_gen.generate() - - def generateSizeHelperC(self): - if not self.quiet: - print("Generating struct size helper c") - self.size_helper_c_gen.setCopyright(self._generateCopyright()) - self.size_helper_c_gen.setHeader(self._generateSizeHelperHeaderC()) - self.size_helper_c_gen.setBody(self._generateSizeHelperFunctionsC()) - self.size_helper_c_gen.generate() - def _generateCopyright(self): copyright = [] copyright.append('/* THIS FILE IS GENERATED. DO NOT EDIT. */'); @@ -577,164 +555,6 @@ class StructWrapperGen: def _get_size_helper_func_name(self, struct): return self._get_func_name(struct, 'size') - def _generateSizeHelperFunctions(self): - sh_funcs = [] - # just generates prototypes for all the functions - for s in sorted(self.struct_dict): - - # Wrap this in platform check since it may contain undefined structs or functions - add_platform_wrapper_entry(sh_funcs, typedef_fwd_dict[s]) - sh_funcs.append('size_t %s(const %s* pStruct);' % (self._get_size_helper_func_name(s), typedef_fwd_dict[s])) - add_platform_wrapper_exit(sh_funcs, typedef_fwd_dict[s]) - - return "\n".join(sh_funcs) - - def _generateSizeHelperFunctionsC(self): - sh_funcs = [] - # generate function definitions - for s in sorted(self.struct_dict): - - # Wrap this in platform check since it may contain undefined structs or functions - add_platform_wrapper_entry(sh_funcs, typedef_fwd_dict[s]) - - skip_list = [] # Used when struct elements need to be skipped because size already accounted for - sh_funcs.append('size_t %s(const %s* pStruct)\n{' % (self._get_size_helper_func_name(s), typedef_fwd_dict[s])) - indent = ' ' - sh_funcs.append('%ssize_t structSize = 0;' % (indent)) - sh_funcs.append('%sif (pStruct) {' % (indent)) - indent = ' ' - sh_funcs.append('%sstructSize = sizeof(%s);' % (indent, typedef_fwd_dict[s])) - i_decl = False - for m in sorted(self.struct_dict[s]): - if m in skip_list: - continue - if self.struct_dict[s][m]['dyn_array']: - if self.struct_dict[s][m]['full_type'].count('*') > 1: - if not is_type(self.struct_dict[s][m]['type'], 'struct') and not 'char' in self.struct_dict[s][m]['type'].lower(): - if 'ppMemoryBarriers' == self.struct_dict[s][m]['name']: - # TODO : For now be conservative and consider all memBarrier ptrs as largest possible struct - sh_funcs.append('%sstructSize += pStruct->%s*(sizeof(%s*) + sizeof(VkImageMemoryBarrier));' % (indent, self.struct_dict[s][m]['array_size'], self.struct_dict[s][m]['type'])) - else: - sh_funcs.append('%sstructSize += pStruct->%s*(sizeof(%s*) + sizeof(%s));' % (indent, self.struct_dict[s][m]['array_size'], self.struct_dict[s][m]['type'], self.struct_dict[s][m]['type'])) - else: # This is an array of char* or array of struct ptrs - if not i_decl: - sh_funcs.append('%suint32_t i = 0;' % (indent)) - i_decl = True - sh_funcs.append('%sfor (i = 0; i < pStruct->%s; i++) {' % (indent, self.struct_dict[s][m]['array_size'])) - indent = ' ' - if is_type(self.struct_dict[s][m]['type'], 'struct'): - sh_funcs.append('%sstructSize += (sizeof(%s*) + %s(pStruct->%s[i]));' % (indent, self.struct_dict[s][m]['type'], self._get_size_helper_func_name(self.struct_dict[s][m]['type']), self.struct_dict[s][m]['name'])) - else: - sh_funcs.append('%sstructSize += (sizeof(char*) + (sizeof(char) * (1 + strlen(pStruct->%s[i]))));' % (indent, self.struct_dict[s][m]['name'])) - indent = ' ' - sh_funcs.append('%s}' % (indent)) - else: - if is_type(self.struct_dict[s][m]['type'], 'struct'): - if not i_decl: - sh_funcs.append('%suint32_t i = 0;' % (indent)) - i_decl = True - sh_funcs.append('%sfor (i = 0; i < pStruct->%s; i++) {' % (indent, self.struct_dict[s][m]['array_size'])) - indent = ' ' - sh_funcs.append('%sstructSize += %s(&pStruct->%s[i]);' % (indent, self._get_size_helper_func_name(self.struct_dict[s][m]['type']), self.struct_dict[s][m]['name'])) - indent = ' ' - sh_funcs.append('%s}' % (indent)) - else: - sh_funcs.append('%sstructSize += pStruct->%s*sizeof(%s);' % (indent, self.struct_dict[s][m]['array_size'], self.struct_dict[s][m]['type'])) - elif self.struct_dict[s][m]['ptr'] and 'pNext' != self.struct_dict[s][m]['name'] and 'dpy' != self.struct_dict[s][m]['name']: - if 'char' in self.struct_dict[s][m]['type'].lower(): - sh_funcs.append('%sstructSize += (pStruct->%s != NULL) ? sizeof(%s)*(1+strlen(pStruct->%s)) : 0;' % (indent, self.struct_dict[s][m]['name'], self.struct_dict[s][m]['type'], self.struct_dict[s][m]['name'])) - elif is_type(self.struct_dict[s][m]['type'], 'struct'): - sh_funcs.append('%sstructSize += %s(pStruct->%s);' % (indent, self._get_size_helper_func_name(self.struct_dict[s][m]['type']), self.struct_dict[s][m]['name'])) - elif 'void' not in self.struct_dict[s][m]['type'].lower(): - if (self.struct_dict[s][m]['type'] != 'xcb_connection_t'): - sh_funcs.append('%sstructSize += sizeof(%s);' % (indent, self.struct_dict[s][m]['type'])) - elif 'size_t' == self.struct_dict[s][m]['type'].lower(): - sh_funcs.append('%sstructSize += pStruct->%s;' % (indent, self.struct_dict[s][m]['name'])) - skip_list.append(m+1) - indent = ' ' - sh_funcs.append('%s}' % (indent)) - sh_funcs.append("%sreturn structSize;\n}" % (indent)) - - # End of platform wrapped section - add_platform_wrapper_exit(sh_funcs, typedef_fwd_dict[s]) - - # Now generate generic functions to loop over entire struct chain (or just handle single generic structs) - for follow_chain in [True, False]: - sh_funcs.append('%s' % self.lineinfo.get()) - if follow_chain: - sh_funcs.append('size_t get_struct_chain_size(const void* pStruct)\n{') - else: - sh_funcs.append('size_t get_dynamic_struct_size(const void* pStruct)\n{') - indent = ' ' - sh_funcs.append('%s// Just use VkApplicationInfo as struct until actual type is resolved' % (indent)) - sh_funcs.append('%sVkApplicationInfo* pNext = (VkApplicationInfo*)pStruct;' % (indent)) - sh_funcs.append('%ssize_t structSize = 0;' % (indent)) - if follow_chain: - sh_funcs.append('%swhile (pNext) {' % (indent)) - indent = ' ' - sh_funcs.append('%sswitch (pNext->sType) {' % (indent)) - indent += ' ' - for e in enum_type_dict: - if 'StructureType' in e: - for v in sorted(enum_type_dict[e]): - struct_name = get_struct_name_from_struct_type(v) - if struct_name not in self.struct_dict: - continue - - if 'WIN32' in v: - sh_funcs.append("#ifdef VK_USE_PLATFORM_WIN32_KHR") - sh_funcs.append('%scase %s:' % (indent, v)) - sh_funcs.append('%s{' % (indent)) - indent += ' ' - sh_funcs.append('%sstructSize += %s((%s*)pNext);' % (indent, self._get_size_helper_func_name(struct_name), struct_name)) - sh_funcs.append('%sbreak;' % (indent)) - indent = indent[:-4] - sh_funcs.append('%s}' % (indent)) - if 'WIN32' in v: - sh_funcs.append("#endif // VK_USE_PLATFORM_WIN32_KHR") - sh_funcs.append('%sdefault:' % (indent)) - indent += ' ' - sh_funcs.append('%sassert(0);' % (indent)) - sh_funcs.append('%sstructSize += 0;' % (indent)) - indent = indent[:-4] - indent = indent[:-4] - sh_funcs.append('%s}' % (indent)) - if follow_chain: - sh_funcs.append('%spNext = (VkApplicationInfo*)pNext->pNext;' % (indent)) - indent = indent[:-4] - sh_funcs.append('%s}' % (indent)) - sh_funcs.append('%sreturn structSize;\n}' % indent) - return "\n".join(sh_funcs) - - def _generateSizeHelperHeader(self): - header = [] - header.append('\n#ifdef __cplusplus\n') - header.append('extern "C" {\n') - header.append('#endif\n') - header.append("\n") - header.append("//#includes, #defines, globals and such...\n") - for f in self.include_headers: - header.append("#include <%s>\n" % f) - header.append('\n// Function Prototypes\n') - header.append("size_t get_struct_chain_size(const void* pStruct);\n") - header.append("size_t get_dynamic_struct_size(const void* pStruct);\n") - return "".join(header) - - def _generateSizeHelperHeaderC(self): - header = [] - header.append('#include "vk_struct_size_helper.h"') - header.append('#include <string.h>') - header.append('#include <assert.h>') - header.append('\n// Function definitions\n') - return "\n".join(header) - - def _generateSizeHelperFooter(self): - footer = [] - footer.append('\n\n#ifdef __cplusplus') - footer.append('}') - footer.append('#endif') - return "\n".join(footer) - def _generateHeader(self): header = [] header.append("//#includes, #defines, globals and such...\n") @@ -1052,18 +872,10 @@ def main(argv=None): os.mkdir(os.path.dirname(enum_sh_filename)) if opts.gen_struct_wrappers: sw = StructWrapperGen(struct_dict, os.path.basename(opts.input_file).strip(".h"), os.path.dirname(enum_sh_filename), opts.quiet) - #print(sw.get_class_name(struct)) sw.set_include_headers([input_header,os.path.basename(enum_sh_filename),"stdint.h","cinttypes", "stdio.h","stdlib.h"]) sw.set_include_headers(["stdio.h", "stdlib.h", input_header]) - sw.generateSizeHelper() - sw.generateSizeHelperC() sw.generateSafeStructHeader() sw.generateSafeStructs() - if opts.gen_struct_sizes: - st = StructWrapperGen(struct_dict, os.path.basename(opts.input_file).strip(".h"), os.path.dirname(enum_sh_filename), opts.quiet) - st.set_include_headers(["stdio.h", "stdlib.h", input_header]) - st.generateSizeHelper() - st.generateSizeHelperC() if not opts.quiet: print("DONE!") #print(typedef_rev_dict) |
