diff --git a/.gitignore b/.gitignore index 88368db0..d8add8ed 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,4 @@ Debug CTestTestfile.cmake Testing autogen +MANIFEST diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 00000000..72596804 --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,2 @@ +include setup.py +include include/pybind11/*.h diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 00000000..3c6e79cf --- /dev/null +++ b/setup.cfg @@ -0,0 +1,2 @@ +[bdist_wheel] +universal=1 diff --git a/setup.py b/setup.py new file mode 100644 index 00000000..a915bf23 --- /dev/null +++ b/setup.py @@ -0,0 +1,66 @@ +#!/usr/bin/env python + +# Setup script for PyPI; use CMakeFile.txt to build the example application + +from setuptools import setup + +setup( + name='pybind11', + version='1.0', + description='Seamless operability between C++11 and Python', + author='Wenzel Jakob', + author_email='wenzel@inf.ethz.ch', + url='https://github.com/wjakob/pybind11', + download_url='https://github.com/wjakob/pybind11/tarball/v1.0', + packages=[], + license='BSD', + headers=[ + 'include/pybind11/cast.h', + 'include/pybind11/complex.h', + 'include/pybind11/numpy.h', + 'include/pybind11/pybind11.h', + 'include/pybind11/stl.h', + 'include/pybind11/common.h', + 'include/pybind11/functional.h', + 'include/pybind11/operators.h', + 'include/pybind11/pytypes.h', + 'include/pybind11/typeid.h' + ], + classifiers=[ + 'Development Status :: 5 - Production/Stable', + 'Intended Audience :: Developers', + 'Topic :: Software Development :: Libraries :: Python Modules', + 'Topic :: Utilities', + 'Programming Language :: C++', + 'Programming Language :: Python :: 2.7', + 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 3.2', + 'Programming Language :: Python :: 3.3', + 'Programming Language :: Python :: 3.4', + 'License :: OSI Approved :: BSD License', + ], + keywords='C++11, Python bindings', + long_description="""pybind11 is a lightweight header library that exposes +C++ types in Python and vice versa, mainly to create Python bindings of +existing C++ code. Its goals and syntax are similar to the excellent +Boost.Python library by David Abrahams: to minimize boilerplate code in +traditional extension modules by inferring type information using compile-time +introspection. + +The main issue with Boost.Python—and the reason for creating such a similar +project—is Boost. Boost is an enormously large and complex suite of utility +libraries that works with almost every C++ compiler in existence. This +compatibility has its cost: arcane template tricks and workarounds are +necessary to support the oldest and buggiest of compiler specimens. Now that +C++11-compatible compilers are widely available, this heavy machinery has +become an excessively large and unnecessary dependency. + +Think of this library as a tiny self-contained version of Boost.Python with +everything stripped away that isn't relevant for binding generation. The whole +codebase requires less than 3000 lines of code and only depends on Python (2.7 +or 3.x) and the C++ standard library. This compact implementation was +possible thanks to some of the new C++11 language features (tuples, lambda +functions and variadic templates). Since its creation, this library has +grown beyond Boost.Python in many ways, leading to dramatically simpler binding +code in many common situations.""", +)