diff options
| author | Mark Lobodzinski <mark@lunarg.com> | 2016-10-12 11:34:19 -0600 |
|---|---|---|
| committer | Mark Lobodzinski <mark@lunarg.com> | 2016-10-13 13:17:34 -0600 |
| commit | 12c72acfd15da667b9b1902e909ca0d9fd6b9a1c (patch) | |
| tree | 0126947d70b0b8071e55f3b7160759cc56915d75 | |
| parent | f84f889bcfe596191684c821ec924261bb5b7e1d (diff) | |
| download | usermoji-12c72acfd15da667b9b1902e909ca0d9fd6b9a1c.tar.xz | |
layers: Removed genvk.py
Replaced with an updated and modified version, lvl_genvk.py.
Change-Id: I60f344d8361d1408303185a5d7958575a404870e
| -rwxr-xr-x | genvk.py | 381 |
1 files changed, 0 insertions, 381 deletions
diff --git a/genvk.py b/genvk.py deleted file mode 100755 index c34c8a4d..00000000 --- a/genvk.py +++ /dev/null @@ -1,381 +0,0 @@ -#!/usr/bin/env python -# -# Copyright (c) 2013-2016 The Khronos Group Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import sys, time, pdb, string, cProfile -from reg import * -from generator import write, CGeneratorOptions, COutputGenerator, DocGeneratorOptions, DocOutputGenerator, PyOutputGenerator, ValidityOutputGenerator, HostSynchronizationOutputGenerator, ThreadGeneratorOptions, ThreadOutputGenerator -from generator import ParamCheckerGeneratorOptions, ParamCheckerOutputGenerator -from generator import UniqueObjectsGeneratorOptions, UniqueObjectsOutputGenerator - -# debug - start header generation in debugger -# dump - dump registry after loading -# profile - enable Python profiling -# protect - whether to use #ifndef protections -# registry <filename> - use specified XML registry instead of gl.xml -# target - string name of target header, or all targets if None -# timeit - time length of registry loading & header generation -# validate - validate return & parameter group tags against <group> -debug = False -dump = False -profile = False -protect = True -target = None -timeit = False -validate= False -# Default input / log files -errFilename = None -diagFilename = 'diag.txt' -regFilename = 'vk.xml' -outDir = '.' - -if __name__ == '__main__': - i = 1 - while (i < len(sys.argv)): - arg = sys.argv[i] - i = i + 1 - if (arg == '-debug'): - write('Enabling debug (-debug)', file=sys.stderr) - debug = True - elif (arg == '-dump'): - write('Enabling dump (-dump)', file=sys.stderr) - dump = True - elif (arg == '-noprotect'): - write('Disabling inclusion protection in output headers', file=sys.stderr) - protect = False - elif (arg == '-profile'): - write('Enabling profiling (-profile)', file=sys.stderr) - profile = True - elif (arg == '-registry'): - regFilename = sys.argv[i] - i = i+1 - write('Using registry ', regFilename, file=sys.stderr) - elif (arg == '-time'): - write('Enabling timing (-time)', file=sys.stderr) - timeit = True - elif (arg == '-validate'): - write('Enabling group validation (-validate)', file=sys.stderr) - validate = True - elif (arg == '-outdir'): - outDir = sys.argv[i] - i = i+1 - write('Using output directory ', outDir, file=sys.stderr) - elif (arg[0:1] == '-'): - write('Unrecognized argument:', arg, file=sys.stderr) - exit(1) - else: - target = arg - write('Using target', target, file=sys.stderr) - -# Simple timer functions -startTime = None -def startTimer(): - global startTime - startTime = time.clock() -def endTimer(msg): - global startTime - endTime = time.clock() - if (timeit): - write(msg, endTime - startTime) - startTime = None - -# Load & parse registry -reg = Registry() - -startTimer() -tree = etree.parse(regFilename) -endTimer('Time to make ElementTree =') - -startTimer() -reg.loadElementTree(tree) -endTimer('Time to parse ElementTree =') - -if (validate): - reg.validateGroups() - -if (dump): - write('***************************************') - write('Performing Registry dump to regdump.txt') - write('***************************************') - reg.dumpReg(filehandle = open('regdump.txt','w')) - -# Turn a list of strings into a regexp string matching exactly those strings -def makeREstring(list): - return '^(' + '|'.join(list) + ')$' - -# Descriptive names for various regexp patterns used to select -# versions and extensions -allVersions = allExtensions = '.*' -noVersions = noExtensions = None - -# Copyright text prefixing all headers (list of strings). -prefixStrings = [ - '/*', - '** Copyright (c) 2015-2016 The Khronos Group Inc.', - '**', - '** Licensed under the Apache License, Version 2.0 (the "License");', - '** you may not use this file except in compliance with the License.', - '** You may obtain a copy of the License at', - '**', - '** http://www.apache.org/licenses/LICENSE-2.0', - '**', - '** Unless required by applicable law or agreed to in writing, software', - '** distributed under the License is distributed on an "AS IS" BASIS,', - '** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.', - '** See the License for the specific language governing permissions and', - '** limitations under the License.', - '*/', - '' -] - -# Text specific to Vulkan headers -vkPrefixStrings = [ - '/*', - '** This header is generated from the Khronos Vulkan XML API Registry.', - '**', - '*/', - '' -] - -# Defaults for generating re-inclusion protection wrappers (or not) -protectFile = protect -protectFeature = protect -protectProto = protect - -buildList = [ - # Vulkan 1.0 - header for core API + extensions. - # To generate just the core API, - # change to 'defaultExtensions = None' below. - [ COutputGenerator, - CGeneratorOptions( - filename = 'include/vulkan/vulkan.h', - apiname = 'vulkan', - profile = None, - versions = allVersions, - emitversions = allVersions, - defaultExtensions = 'vulkan', - addExtensions = None, - removeExtensions = None, - prefixText = prefixStrings + vkPrefixStrings, - genFuncPointers = True, - protectFile = protectFile, - protectFeature = False, - protectProto = '#ifndef', - protectProtoStr = 'VK_NO_PROTOTYPES', - apicall = 'VKAPI_ATTR ', - apientry = 'VKAPI_CALL ', - apientryp = 'VKAPI_PTR *', - alignFuncParam = 48) - ], - # Vulkan 1.0 draft - API include files for spec and ref pages - # Overwrites include subdirectories in spec source tree - # The generated include files do not include the calling convention - # macros (apientry etc.), unlike the header files. - # Because the 1.0 core branch includes ref pages for extensions, - # all the extension interfaces need to be generated, even though - # none are used by the core spec itself. - [ DocOutputGenerator, - DocGeneratorOptions( - filename = 'vulkan-docs', - apiname = 'vulkan', - profile = None, - versions = allVersions, - emitversions = allVersions, - defaultExtensions = None, - addExtensions = - makeREstring([ - 'VK_KHR_sampler_mirror_clamp_to_edge', - ]), - removeExtensions = - makeREstring([ - ]), - prefixText = prefixStrings + vkPrefixStrings, - apicall = '', - apientry = '', - apientryp = '*', - genDirectory = '../../doc/specs/vulkan', - alignFuncParam = 48, - expandEnumerants = False) - ], - # Vulkan 1.0 draft - API names to validate man/api spec includes & links - [ PyOutputGenerator, - DocGeneratorOptions( - filename = '../../doc/specs/vulkan/vkapi.py', - apiname = 'vulkan', - profile = None, - versions = allVersions, - emitversions = allVersions, - defaultExtensions = None, - addExtensions = - makeREstring([ - 'VK_KHR_sampler_mirror_clamp_to_edge', - ]), - removeExtensions = - makeREstring([ - ])) - ], - # Vulkan 1.0 draft - core API validity files for spec - # Overwrites validity subdirectories in spec source tree - [ ValidityOutputGenerator, - DocGeneratorOptions( - filename = 'validity', - apiname = 'vulkan', - profile = None, - versions = allVersions, - emitversions = allVersions, - defaultExtensions = None, - addExtensions = - makeREstring([ - 'VK_KHR_sampler_mirror_clamp_to_edge', - ]), - removeExtensions = - makeREstring([ - ]), - genDirectory = '../../doc/specs/vulkan') - ], - # Vulkan 1.0 draft - core API host sync table files for spec - # Overwrites subdirectory in spec source tree - [ HostSynchronizationOutputGenerator, - DocGeneratorOptions( - filename = 'hostsynctable', - apiname = 'vulkan', - profile = None, - versions = allVersions, - emitversions = allVersions, - defaultExtensions = None, - addExtensions = - makeREstring([ - 'VK_KHR_sampler_mirror_clamp_to_edge', - ]), - removeExtensions = - makeREstring([ - ]), - genDirectory = '../../doc/specs/vulkan') - ], - # Vulkan 1.0 draft - thread checking layer - [ ThreadOutputGenerator, - ThreadGeneratorOptions( - filename = 'thread_check.h', - apiname = 'vulkan', - profile = None, - versions = allVersions, - emitversions = allVersions, - defaultExtensions = 'vulkan', - addExtensions = None, - removeExtensions = None, - prefixText = prefixStrings + vkPrefixStrings, - genFuncPointers = True, - protectFile = protectFile, - protectFeature = False, - protectProto = True, - protectProtoStr = 'VK_PROTOTYPES', - apicall = 'VKAPI_ATTR ', - apientry = 'VKAPI_CALL ', - apientryp = 'VKAPI_PTR *', - alignFuncParam = 48, - genDirectory = outDir) - ], - [ ParamCheckerOutputGenerator, - ParamCheckerGeneratorOptions( - filename = 'parameter_validation.h', - apiname = 'vulkan', - profile = None, - versions = allVersions, - emitversions = allVersions, - defaultExtensions = 'vulkan', - addExtensions = None, - removeExtensions = None, - prefixText = prefixStrings + vkPrefixStrings, - genFuncPointers = True, - protectFile = protectFile, - protectFeature = False, - protectProto = None, - protectProtoStr = 'VK_NO_PROTOTYPES', - apicall = 'VKAPI_ATTR ', - apientry = 'VKAPI_CALL ', - apientryp = 'VKAPI_PTR *', - alignFuncParam = 48, - genDirectory = outDir) - ], - [ UniqueObjectsOutputGenerator, - UniqueObjectsGeneratorOptions( - filename = 'unique_objects_wrappers.h', - apiname = 'vulkan', - profile = None, - versions = allVersions, - emitversions = allVersions, - defaultExtensions = 'vulkan', - addExtensions = None, - removeExtensions = None, - prefixText = prefixStrings + vkPrefixStrings, - genFuncPointers = True, - protectFile = False, - protectFeature = False, - protectProto = None, - protectProtoStr = 'VK_NO_PROTOTYPES', - apicall = 'VKAPI_ATTR ', - apientry = 'VKAPI_CALL ', - apientryp = 'VKAPI_PTR *', - alignFuncParam = 48, - genDirectory = outDir) - ], - None -] - -# create error/warning & diagnostic files -if (errFilename): - errWarn = open(errFilename,'w') -else: - errWarn = sys.stderr -diag = open(diagFilename, 'w') - -# check that output directory exists -if (not os.path.isdir(outDir)): - write('Output directory does not exist: ', outDir) - raise - -def genHeaders(): - # Loop over targets, building each - generated = 0 - for item in buildList: - if (item == None): - break - createGenerator = item[0] - genOpts = item[1] - if (target and target != genOpts.filename): - # write('*** Skipping', genOpts.filename) - continue - write('*** Building', genOpts.filename) - generated = generated + 1 - startTimer() - gen = createGenerator(errFile=errWarn, - warnFile=errWarn, - diagFile=diag) - reg.setGenerator(gen) - reg.apiGen(genOpts) - write('** Generated', genOpts.filename) - endTimer('Time to generate ' + genOpts.filename + ' =') - if (target and generated == 0): - write('Failed to generate target:', target) - -if (debug): - pdb.run('genHeaders()') -elif (profile): - import cProfile, pstats - cProfile.run('genHeaders()', 'profile.txt') - p = pstats.Stats('profile.txt') - p.strip_dirs().sort_stats('time').print_stats(50) -else: - genHeaders() |
