Simplified packaging for pybind11-based C++ extensions
Project description
Simplified packaging for pybind11-based C++ extensions
Documentation: https://setuptools-cpp.davidmontague.xyz
Source Code: https://github.com/dmontagu/setuptools-cpp
Features
Pybind11Extension
: For standard Pybind11 extensions from C++ source filesCMakeExtension
: Useful for incorporating CMake-dependent libraries like CGAL- Poetry Compatibility: Easy to use with poetry's custom build system
Basic Usage
You can use the CMakeExtension
or Pybind11Extension
classes in your setup.py
as follows:
from setuptools import setup
from setuptools_cpp import CMakeExtension, ExtensionBuilder, Pybind11Extension
ext_modules = [
# A basic pybind11 extension in <project_root>/src/ext1:
Pybind11Extension(
"my_pkg.ext1", ["src/ext1/ext1.cpp"], include_dirs=["src/ext1/include"]
),
# An extension with a custom <project_root>/src/ext2/CMakeLists.txt:
CMakeExtension(f"my_pkg.ext2", sourcedir="src/ext2")
]
setup(
name="my_pkg",
version="0.1.0",
packages=["my_pkg"],
# ... other setup kwargs ...
ext_modules=ext_modules,
cmdclass=dict(build_ext=ExtensionBuilder),
zip_safe=False,
)
You can then use standard setuptools commands like python setup.py install
.
See the User Guide for more details.
Requirements
This package is intended for use with Python 3.6+.
Installation
pip install setuptools-cpp
License
This project is licensed under the terms of the MIT license.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
setuptools_cpp-0.1.0.tar.gz
(6.3 kB
view hashes)
Built Distribution
Close
Hashes for setuptools_cpp-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cd8179c038a12dbf2914999928f193f54d4713fd11715efdc5d6f450f663c8bd |
|
MD5 | 8a2543684d42343e7c55919a27713574 |
|
BLAKE2b-256 | fc7aaac83f37a6362d6693eb5f4cfbfc8d42d2253c2d4d7a0fcc2444368fdca2 |