Skip to content

Commit

Permalink
Add -F option and lite template
Browse files Browse the repository at this point in the history
  • Loading branch information
eternalrain committed Jan 29, 2015
1 parent e1d6298 commit 8a90140
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 4 deletions.
7 changes: 4 additions & 3 deletions flext.py
Expand Up @@ -309,7 +309,7 @@ def generate_enums(subsets, enums):

return enumsDecl

def generate_functions(subsets, commands):
def generate_functions(subsets, commands, funcslist):
functions = []
function_set = set()

Expand All @@ -318,6 +318,7 @@ def generate_functions(subsets, commands):
subset_functions = []
for name in subset.commands:
if name in function_set: continue
if funcslist and name[2:] not in funcslist: continue
subset_functions.append(Function(commands[name].returntype, commands[name].name[2:], commands[name].params))
function_set.add(name)

Expand All @@ -339,7 +340,7 @@ def resolve_type_dependencies(subsets, types, commands):

return requiredTypes

def parse_xml(version, extensions):
def parse_xml(version, extensions, funcslist):
tree = etree.parse(gl_xml_file)
root = tree.getroot()

Expand All @@ -357,7 +358,7 @@ def parse_xml(version, extensions):

passthru = generate_passthru(requiredTypes, types)
enums = generate_enums(subsets, raw_enums)
functions = generate_functions(subsets, commands)
functions = generate_functions(subsets, commands, funcslist)

return passthru, enums, functions, types, raw_enums

Expand Down
14 changes: 13 additions & 1 deletion flextGLgen.py
Expand Up @@ -10,11 +10,21 @@ def main():
options,profile = parse_args()
version,extensions = flext.parse_profile(profile)

funcslist = []
if options.funcslist:
with open(options.funcslist) as fl:
fs = fl.read()
funcslist = fs.split()
#Functions needed by loader code
funcslist.append("GetIntegerv")
funcslist.append("GetStringi")
funcslist = set(funcslist)

# Download spec file(s) if necessary
flext.download_spec(options.download)

# Parse spec
passthru, enums, functions, types, raw_enums = flext.parse_xml(version, extensions)
passthru, enums, functions, types, raw_enums = flext.parse_xml(version, extensions, funcslist)

# Generate source from templates
flext.generate_source(options, version, enums, functions, passthru,
Expand All @@ -32,6 +42,8 @@ def parse_args():
help='The template set to use for file generation')
parser.add_option('-t', '--template-dir', dest='template_dir', default=None,
help='The directory to look for template files in. (overrides --template)')
parser.add_option('-F', '--funcslist', dest='funcslist', default=None,
help='File with a list of gl functions used by your program (prevents loading unnecessary funcs)')
options, args = parser.parse_args()

if len(args) < 1:
Expand Down

0 comments on commit 8a90140

Please sign in to comment.