aboutsummaryrefslogtreecommitdiffstats
path: root/setup.py
diff options
context:
space:
mode:
Diffstat (limited to 'setup.py')
-rw-r--r--setup.py66
1 files changed, 66 insertions, 0 deletions
diff --git a/setup.py b/setup.py
new file mode 100644
index 0000000..62eddc2
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,66 @@
+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 check_call
+ # This is run inside the install staging directory (that had no .pyc files)
+ # We don't want to generate any.
+ # https://github.com/eliben/pycparser/pull/135
+ check_call([sys.executable, '-B', '_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.19',
+ author='Eli Bendersky',
+ maintainer='Eli Bendersky',
+ author_email='eliben@gmail.com',
+ url='https://github.com/eliben/pycparser',
+ platforms='Cross Platform',
+ classifiers = [
+ 'Development Status :: 5 - Production/Stable',
+ 'License :: OSI Approved :: BSD License',
+ 'Programming Language :: Python :: 2',
+ 'Programming Language :: Python :: 2.7',
+ 'Programming Language :: Python :: 3',
+ 'Programming Language :: Python :: 3.4',
+ 'Programming Language :: Python :: 3.5',
+ 'Programming Language :: Python :: 3.6',
+ ],
+ python_requires=">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
+ packages=['pycparser', 'pycparser.ply'],
+ package_data={'pycparser': ['*.cfg']},
+ cmdclass={'install': install, 'sdist': sdist},
+)