| import os, sys |
| try: |
| from setuptools import setup |
| from setuptools.command.install import install as _install |
| from setuptools.command.sdist import sdist as _sdist |
| except ImportError: |
| from distutils.core import setup |
| from distutils.command.install import install as _install |
| from distutils.command.sdist import sdist as _sdist |
| |
| |
| def _run_build_tables(dir): |
| from subprocess import call |
| call([sys.executable, '_build_tables.py'], |
| cwd=os.path.join(dir, 'pycparser')) |
| |
| |
| class install(_install): |
| def run(self): |
| _install.run(self) |
| self.execute(_run_build_tables, (self.install_lib,), |
| msg="Build the lexing/parsing tables") |
| |
| |
| class sdist(_sdist): |
| def make_release_tree(self, basedir, files): |
| _sdist.make_release_tree(self, basedir, files) |
| self.execute(_run_build_tables, (basedir,), |
| msg="Build the lexing/parsing tables") |
| |
| |
| setup( |
| # metadata |
| name='pycparser', |
| description='C parser in Python', |
| long_description=""" |
| pycparser is a complete parser of the C language, written in |
| pure Python using the PLY parsing library. |
| It parses C code into an AST and can serve as a front-end for |
| C compilers or analysis tools. |
| """, |
| license='BSD', |
| version='2.12', |
| author='Eli Bendersky', |
| maintainer='Eli Bendersky', |
| author_email='eliben@gmail.com', |
| url='https://github.com/eliben/pycparser', |
| platforms='Cross Platform', |
| classifiers = [ |
| 'Programming Language :: Python :: 2', |
| 'Programming Language :: Python :: 3',], |
| packages=['pycparser', 'pycparser.ply'], |
| package_data={'pycparser': ['*.cfg']}, |
| cmdclass={'install': install, 'sdist': sdist}, |
| ) |
| |
| |