Skip to main content

A minimal PEP 517 compliant build backend that uses Conan to build Python C/C++ extensions

Project description

conan-py-build

A PEP 517 build backend that uses Conan to build Python C/C++ extensions.

Documentation · PyPI · Examples

Install

pip install conan-py-build

Quick start

[!NOTE] The steps below use CMake, but the backend is build-system agnostic — it works with anything Conan can drive. For a Meson version, see basic-meson-pybind11.

  1. Set conan-py-build as your build backend:
[build-system]
requires = ["conan-py-build"]
build-backend = "conan_py_build.build"

[project]
name = "mypackage"
version = "0.1.0"
  1. Add a conanfile.py with your C++ dependencies:
from conan import ConanFile
from conan.tools.cmake import CMake, cmake_layout

class MyPackageConan(ConanFile):
    settings = "os", "compiler", "build_type", "arch"
    generators = "CMakeToolchain", "CMakeDeps"

    def layout(self):
        cmake_layout(self)

    def requirements(self):
        self.requires("fmt/12.1.0")

    def build(self):
        cmake = CMake(self)
        cmake.configure()
        cmake.build()

    def package(self):
        cmake = CMake(self)
        cmake.install()
  1. Your CMakeLists.txt must install the extension into the package directory so it ends up in the wheel:
install(TARGETS _core DESTINATION mypackage)
  1. Build:
pip wheel . -w dist/ -vvv

See the documentation for the full getting started guide, configuration, profiles, dynamic versioning, and more.

Examples

See the examples/ directory:

License

MIT — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

conan_py_build-0.5.2.tar.gz (21.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

conan_py_build-0.5.2-py3-none-any.whl (13.5 kB view details)

Uploaded Python 3

File details

Details for the file conan_py_build-0.5.2.tar.gz.

File metadata

  • Download URL: conan_py_build-0.5.2.tar.gz
  • Upload date:
  • Size: 21.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for conan_py_build-0.5.2.tar.gz
Algorithm Hash digest
SHA256 8c8b21c4681bbd41a24f77c9d67bc8fe33181eb1b6d1ba230b68be21cfb86771
MD5 0843ddf12bbce8897829194a6e6997f7
BLAKE2b-256 90aed43d7a514ead51a7ec2baafcfe6b6281c64d369f1a9dda305e5e7c54fe05

See more details on using hashes here.

Provenance

The following attestation bundles were made for conan_py_build-0.5.2.tar.gz:

Publisher: release.yml on conan-io/conan-py-build

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file conan_py_build-0.5.2-py3-none-any.whl.

File metadata

  • Download URL: conan_py_build-0.5.2-py3-none-any.whl
  • Upload date:
  • Size: 13.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for conan_py_build-0.5.2-py3-none-any.whl
Algorithm Hash digest
SHA256 c2d58ceb38d43be3deacdd8d7533b8cb5f2109538aae967599381f8b5f718941
MD5 743f392db2ad6ce234b71dbe9d251933
BLAKE2b-256 e1b9316f8c590a8973bbbc1fba4f5e574f47ab28fbcbd94e1a0348e6c33f7a35

See more details on using hashes here.

Provenance

The following attestation bundles were made for conan_py_build-0.5.2-py3-none-any.whl:

Publisher: release.yml on conan-io/conan-py-build

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page