Wenzel Jakob | 929fd7e | 2015-10-15 18:24:12 +0200 | [diff] [blame] | 1 | #!/usr/bin/env python |
| 2 | |
Dean Moldovan | a0c1ccf | 2016-08-12 13:50:00 +0200 | [diff] [blame] | 3 | # Setup script for PyPI; use CMakeFile.txt to build extension modules |
Wenzel Jakob | 929fd7e | 2015-10-15 18:24:12 +0200 | [diff] [blame] | 4 | |
| 5 | from setuptools import setup |
Wenzel Jakob | 4f972c0 | 2016-03-01 10:36:10 +0100 | [diff] [blame] | 6 | from pybind11 import __version__ |
Wenzel Jakob | 929fd7e | 2015-10-15 18:24:12 +0200 | [diff] [blame] | 7 | |
| 8 | setup( |
| 9 | name='pybind11', |
Sylvain Corlay | 97dc810 | 2016-02-01 09:51:35 -0500 | [diff] [blame] | 10 | version=__version__, |
Wenzel Jakob | 929fd7e | 2015-10-15 18:24:12 +0200 | [diff] [blame] | 11 | description='Seamless operability between C++11 and Python', |
| 12 | author='Wenzel Jakob', |
Wenzel Jakob | 8cb6cb3 | 2016-04-17 20:21:41 +0200 | [diff] [blame] | 13 | author_email='wenzel.jakob@epfl.ch', |
Wenzel Jakob | 929fd7e | 2015-10-15 18:24:12 +0200 | [diff] [blame] | 14 | url='https://github.com/wjakob/pybind11', |
Wenzel Jakob | 6f6c3bc | 2016-02-07 17:37:40 +0100 | [diff] [blame] | 15 | download_url='https://github.com/wjakob/pybind11/tarball/v' + __version__, |
Wenzel Jakob | 4f972c0 | 2016-03-01 10:36:10 +0100 | [diff] [blame] | 16 | packages=['pybind11'], |
Wenzel Jakob | 929fd7e | 2015-10-15 18:24:12 +0200 | [diff] [blame] | 17 | license='BSD', |
| 18 | headers=[ |
Wenzel Jakob | 48548ea | 2016-01-17 22:36:44 +0100 | [diff] [blame] | 19 | 'include/pybind11/attr.h', |
Wenzel Jakob | 929fd7e | 2015-10-15 18:24:12 +0200 | [diff] [blame] | 20 | 'include/pybind11/cast.h', |
Alessandro Bacchini | 9f13a30 | 2016-12-01 15:22:17 +0100 | [diff] [blame^] | 21 | 'include/pybind11/chrono.h', |
| 22 | 'include/pybind11/common.h', |
Wenzel Jakob | 929fd7e | 2015-10-15 18:24:12 +0200 | [diff] [blame] | 23 | 'include/pybind11/complex.h', |
Wenzel Jakob | 678d787 | 2016-01-17 22:36:41 +0100 | [diff] [blame] | 24 | 'include/pybind11/descr.h', |
Wenzel Jakob | 9e0a056 | 2016-05-05 20:33:54 +0200 | [diff] [blame] | 25 | 'include/pybind11/eigen.h', |
Alessandro Bacchini | 9f13a30 | 2016-12-01 15:22:17 +0100 | [diff] [blame^] | 26 | 'include/pybind11/eval.h', |
| 27 | 'include/pybind11/functional.h', |
Wenzel Jakob | 929fd7e | 2015-10-15 18:24:12 +0200 | [diff] [blame] | 28 | 'include/pybind11/numpy.h', |
Alessandro Bacchini | 9f13a30 | 2016-12-01 15:22:17 +0100 | [diff] [blame^] | 29 | 'include/pybind11/operators.h', |
| 30 | 'include/pybind11/options.h', |
Wenzel Jakob | 929fd7e | 2015-10-15 18:24:12 +0200 | [diff] [blame] | 31 | 'include/pybind11/pybind11.h', |
Alessandro Bacchini | 9f13a30 | 2016-12-01 15:22:17 +0100 | [diff] [blame^] | 32 | 'include/pybind11/pytypes.h', |
Wenzel Jakob | 929fd7e | 2015-10-15 18:24:12 +0200 | [diff] [blame] | 33 | 'include/pybind11/stl.h', |
Wenzel Jakob | 25c03ce | 2016-05-15 20:50:38 +0200 | [diff] [blame] | 34 | 'include/pybind11/stl_bind.h', |
Alessandro Bacchini | 9f13a30 | 2016-12-01 15:22:17 +0100 | [diff] [blame^] | 35 | 'include/pybind11/typeid.h', |
Wenzel Jakob | 929fd7e | 2015-10-15 18:24:12 +0200 | [diff] [blame] | 36 | ], |
| 37 | classifiers=[ |
| 38 | 'Development Status :: 5 - Production/Stable', |
| 39 | 'Intended Audience :: Developers', |
| 40 | 'Topic :: Software Development :: Libraries :: Python Modules', |
| 41 | 'Topic :: Utilities', |
| 42 | 'Programming Language :: C++', |
| 43 | 'Programming Language :: Python :: 2.7', |
| 44 | 'Programming Language :: Python :: 3', |
| 45 | 'Programming Language :: Python :: 3.2', |
| 46 | 'Programming Language :: Python :: 3.3', |
| 47 | 'Programming Language :: Python :: 3.4', |
Wenzel Jakob | b456ec7 | 2015-10-15 22:43:55 +0200 | [diff] [blame] | 48 | 'Programming Language :: Python :: 3.5', |
Wenzel Jakob | 929fd7e | 2015-10-15 18:24:12 +0200 | [diff] [blame] | 49 | 'License :: OSI Approved :: BSD License', |
| 50 | ], |
| 51 | keywords='C++11, Python bindings', |
| 52 | long_description="""pybind11 is a lightweight header library that exposes |
| 53 | C++ types in Python and vice versa, mainly to create Python bindings of |
| 54 | existing C++ code. Its goals and syntax are similar to the excellent |
| 55 | Boost.Python library by David Abrahams: to minimize boilerplate code in |
| 56 | traditional extension modules by inferring type information using compile-time |
| 57 | introspection. |
| 58 | |
John Kirkham | c40f8c7 | 2015-12-04 16:21:23 -0500 | [diff] [blame] | 59 | The main issue with Boost.Python-and the reason for creating such a similar |
John Kirkham | dc97833 | 2015-12-04 16:22:25 -0500 | [diff] [blame] | 60 | project-is Boost. Boost is an enormously large and complex suite of utility |
Wenzel Jakob | 929fd7e | 2015-10-15 18:24:12 +0200 | [diff] [blame] | 61 | libraries that works with almost every C++ compiler in existence. This |
| 62 | compatibility has its cost: arcane template tricks and workarounds are |
| 63 | necessary to support the oldest and buggiest of compiler specimens. Now that |
| 64 | C++11-compatible compilers are widely available, this heavy machinery has |
| 65 | become an excessively large and unnecessary dependency. |
| 66 | |
| 67 | Think of this library as a tiny self-contained version of Boost.Python with |
Wenzel Jakob | 48548ea | 2016-01-17 22:36:44 +0100 | [diff] [blame] | 68 | everything stripped away that isn't relevant for binding generation. Without |
| 69 | comments, the core header files only require ~2.5K lines of code and depend on |
| 70 | Python (2.7 or 3.x) and the C++ standard library. This compact implementation |
| 71 | was possible thanks to some of the new C++11 language features (specifically: |
| 72 | tuples, lambda functions and variadic templates). Since its creation, this |
| 73 | library has grown beyond Boost.Python in many ways, leading to dramatically |
| 74 | simpler binding code in many common situations.""") |