INNER CODE UNIT · Python
resolve_extension_dependencies
mosra/flextgl · flext.py:704
def resolve_extension_dependencies(name):
# Added as a dependency already, don't add it twice
if name in extension_set: return []
extension_set.add(name)
extension = root.find("./extensions/extension[@name='{}{}']".format(version.prefix, name))
if extension is None:
print('%s is not an extension' % name)
return []
required = []
# Extensions can require other extensions. Used to be a `requires`
# attribute...
if 'requires' in extension.attrib:
for i in extension.attrib['requires'].split(','):
required += resolve_extension_dependencies(i[len(version.prefix):])
# As of 1.3.241 it's named `depends` instead, with a complex syntax on
# its own. It's in a form of "(ext+(ext,ext)+version),version", where
# a `,` means OR and `+` means AND. In the ideal case the dependency
# would be just the version we already depend on, however at this point