Skip to content

Latest vk_mem_alloc.h doesn't parse correctly #9

@NaNraptor

Description

@NaNraptor

So switched to linux since last issue I posted and got the library to work with the default vk_mem_alloc.h file. This file however is very outdated so I grabbed the newest one from https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator/tree/master/include. I replaced the one in pyvma/pyvma/_pyvma_build/include with the one I just copied and ran the command from that directory as per the README file.

Everything up to here is fine but once I run python3.10 setup.py build I get met with this error:

/home/nanyo/Documents/ProgrammingEnvs/PythonEnvs/pyVulkan/pyvma/setup.py:1: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives
  from distutils.command.build import build
Traceback (most recent call last):
  File "/home/nanyo/Documents/ProgrammingEnvs/PythonEnvs/pyVulkan/pyvma/.eggs/cffi-1.15.0-py3.10-linux-x86_64.egg/cffi/cparser.py", line 336, in _parse
    ast = _get_parser().parse(fullcsource)
  File "/home/nanyo/Documents/ProgrammingEnvs/PythonEnvs/pyVulkan/pyvma/.eggs/pycparser-2.21-py3.10.egg/pycparser/c_parser.py", line 147, in parse
    return self.cparser.parse(
  File "/home/nanyo/Documents/ProgrammingEnvs/PythonEnvs/pyVulkan/pyvma/.eggs/pycparser-2.21-py3.10.egg/pycparser/ply/yacc.py", line 331, in parse
    return self.parseopt_notrack(input, lexer, debug, tracking, tokenfunc)
  File "/home/nanyo/Documents/ProgrammingEnvs/PythonEnvs/pyVulkan/pyvma/.eggs/pycparser-2.21-py3.10.egg/pycparser/ply/yacc.py", line 1199, in parseopt_notrack
    tok = call_errorfunc(self.errorfunc, errtoken, self)
  File "/home/nanyo/Documents/ProgrammingEnvs/PythonEnvs/pyVulkan/pyvma/.eggs/pycparser-2.21-py3.10.egg/pycparser/ply/yacc.py", line 193, in call_errorfunc
    r = errorfunc(token)
  File "/home/nanyo/Documents/ProgrammingEnvs/PythonEnvs/pyVulkan/pyvma/.eggs/pycparser-2.21-py3.10.egg/pycparser/c_parser.py", line 1931, in p_error
    self._parse_error(
  File "/home/nanyo/Documents/ProgrammingEnvs/PythonEnvs/pyVulkan/pyvma/.eggs/pycparser-2.21-py3.10.egg/pycparser/plyparser.py", line 67, in _parse_error
    raise ParseError("%s: %s" % (coord, msg))
pycparser.plyparser.ParseError: <cdef source string>:1106:5: before: PFN_vkGetInstanceProcAddr

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/nanyo/Documents/ProgrammingEnvs/PythonEnvs/pyVulkan/pyvma/setup.py", line 53, in <module>
    setup(
  File "/usr/lib/python3/dist-packages/setuptools/__init__.py", line 153, in setup
    return distutils.core.setup(**attrs)
  File "/usr/lib/python3.10/distutils/core.py", line 108, in setup
    _setup_distribution = dist = klass(attrs)
  File "/usr/lib/python3/dist-packages/setuptools/dist.py", line 432, in __init__
    _Distribution.__init__(self, {
  File "/usr/lib/python3.10/distutils/dist.py", line 292, in __init__
    self.finalize_options()
  File "/usr/lib/python3/dist-packages/setuptools/dist.py", line 708, in finalize_options
    ep(self)
  File "/usr/lib/python3/dist-packages/setuptools/dist.py", line 715, in _finalize_setup_keywords
    ep.load()(self, ep.name, value)
  File "/home/nanyo/Documents/ProgrammingEnvs/PythonEnvs/pyVulkan/pyvma/.eggs/cffi-1.15.0-py3.10-linux-x86_64.egg/cffi/setuptools_ext.py", line 219, in cffi_modules
    add_cffi_module(dist, cffi_module)
  File "/home/nanyo/Documents/ProgrammingEnvs/PythonEnvs/pyVulkan/pyvma/.eggs/cffi-1.15.0-py3.10-linux-x86_64.egg/cffi/setuptools_ext.py", line 49, in add_cffi_module
    execfile(build_file_name, mod_vars)
  File "/home/nanyo/Documents/ProgrammingEnvs/PythonEnvs/pyVulkan/pyvma/.eggs/cffi-1.15.0-py3.10-linux-x86_64.egg/cffi/setuptools_ext.py", line 25, in execfile
    exec(code, glob, glob)
  File "pyvma/pyvma_build/pyvma_build.py", line 21, in <module>
    ffibuilder.cdef(cdef)
  File "/home/nanyo/Documents/ProgrammingEnvs/PythonEnvs/pyVulkan/pyvma/.eggs/cffi-1.15.0-py3.10-linux-x86_64.egg/cffi/api.py", line 112, in cdef
    self._cdef(csource, override=override, packed=packed, pack=pack)
  File "/home/nanyo/Documents/ProgrammingEnvs/PythonEnvs/pyVulkan/pyvma/.eggs/cffi-1.15.0-py3.10-linux-x86_64.egg/cffi/api.py", line 126, in _cdef
    self._parser.parse(csource, override=override, **options)
  File "/home/nanyo/Documents/ProgrammingEnvs/PythonEnvs/pyVulkan/pyvma/.eggs/cffi-1.15.0-py3.10-linux-x86_64.egg/cffi/cparser.py", line 389, in parse
    self._internal_parse(csource)
  File "/home/nanyo/Documents/ProgrammingEnvs/PythonEnvs/pyVulkan/pyvma/.eggs/cffi-1.15.0-py3.10-linux-x86_64.egg/cffi/cparser.py", line 394, in _internal_parse
    ast, macros, csource = self._parse(csource)
  File "/home/nanyo/Documents/ProgrammingEnvs/PythonEnvs/pyVulkan/pyvma/.eggs/cffi-1.15.0-py3.10-linux-x86_64.egg/cffi/cparser.py", line 338, in _parse
    self.convert_pycparser_error(e, csource)
  File "/home/nanyo/Documents/ProgrammingEnvs/PythonEnvs/pyVulkan/pyvma/.eggs/cffi-1.15.0-py3.10-linux-x86_64.egg/cffi/cparser.py", line 367, in convert_pycparser_error
    raise CDefError(msg)
cffi.CDefError: cannot parse "PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr;"
<cdef source string>:1106:5: before: PFN_vkGetInstanceProcAddr

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions