Skip to main content

scikit-build-core-conan

CI PyPI version Python versions License

A Conan plugin for scikit-build-core that simplifies building Python extensions with C/C++ dependencies managed by Conan.

Why use this? Instead of manually configuring Conan and CMake toolchains, this plugin handles dependency resolution, build configuration, and CMake integration automatically - all configured through your pyproject.toml.

Features

  • Seamless Conan 2.x integration with scikit-build-core's modern Python build system
  • Local recipe support for consuming in-development Conan packages
  • Lockfile support for reproducible builds across environments
  • Full configuration via pyproject.toml - no separate Conan commands needed

Quick Start

Add scikit-build-core-conan to your build-system.requires and specify scikit_build_core_conan.build as your build backend. You do not need to include scikit-build-core separately - it is required automatically.

[build-system]
requires = ["scikit-build-core-conan"]
build-backend = "scikit_build_core_conan.build"

[project]
name = "my_project"
version = "0.0.1"

With this configuration, the plugin will:

  1. Look for a conanfile.py or conanfile.txt in your project root
  2. Install dependencies using Conan (building from source if needed)
  3. Configure CMake with the appropriate toolchain
  4. Build your Python extension

Configuration

All options can be placed in pyproject.toml under [tool.scikit-build-core-conan], or passed via -C/--config-setting in build or -C/--config-settings in pip.

[tool.scikit-build-core-conan]
# Path to a folder containing a recipe (conanfile.py or conanfile.txt)
path = "."

# Specify which packages to build from source. Possible values: "never", "missing", "cascade", ["pattern", ...]
build = "missing"
# Generators to use
generator = ""
# The root output folder for generated and build files
output-folder = ""
# Deploy using the provided deployer to the output folder. Built-in deployers: full_deploy, direct_deploy, runtime_deploy
deployer = []
# Deployer output folder, base build folder by default if not set
deployer-folder = ""
# Execute the deploy() method of the packages matching the provided patterns
deployer-package = []

# Look in the specified remote or remotes server
remote = []
# Do not use remote, resolve exclusively in the cache
no-remote = false
# Will install newer versions and/or revisions in the local cache
update = false

# Apply the specified profile to the host context
profile = ""
# Apply the specified profile to the build context
profile-build = ""
# Apply the specified profile to both contexts at once
profile-all = ""
# Apply the specified options to the host context. Example: ["pkg/*:with_qt=True"]
options = []
# Apply the specified options to the build context
options-build = []
# Apply the specified options to both contexts at once
options-all = []
# Apply the specified settings to the host context. Example: ["compiler=gcc"]
settings = []
# Apply the specified settings to the build context
settings-build = []
# Apply the specified settings to both contexts at once
settings-all = []
# Apply the specified conf to the host context. Example: ["tools.cmake.cmaketoolchain:generator=Xcode"]
config = []
# Apply the specified conf to the build context
config-build = []
# Apply the specified conf to both contexts at once
config-all = []

# Provide a package name if not specified in conanfile
name = ""
# Provide a package version if not specified in conanfile
version = ""
# Provide a user if not specified in conanfile
user = ""
# Provide a channel if not specified in conanfile
channel = ""

# Path to a lockfile. Use "" to avoid automatic use of existing conan.lock file
lockfile = ""
# Do not raise an error if some dependency is not found in lockfile
lockfile-partial = false
# Filename of the updated lockfile
lockfile-out = ""
# Remove unused entries from the lockfile
lockfile-clean = false

Local Recipes

Sometimes you may want to consume a local recipe rather than from the Conan Center Index. You can do this like this:

[[tool.scikit-build-core-conan.local-recipes]]
path = "path/to/recipe"
name = "recipe"   # optional: package name if not specified in conanfile
version = "0.0.1" # optional: package version if not specified in conanfile

Overrides

scikit-build-core-conan uses the same override system as scikit-build-core. For more details, check out the documentation of scikit-build-core.

For example:

[[tool.scikit-build-core-conan.overrides]]
if.platform-system = "linux"
profile = "path/to/profile"

Projects Using This Build Backend

  • endstone: A high-level plugin API for Minecraft: Bedrock Edition Dedicated Servers.

Using scikit-build-core-conan in your project? Feel free to open a PR to add it here!

Roadmap

This project will be renamed to scikit-build-conan upon the 1.0 stable release.

Links

Metadata

Release files for scikit-build-core-conan 0.9.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for scikit-build-core-conan 0.9.2
File Size Uploaded Provenance
scikit_build_core_conan-0.9.2.tar.gz 16.1 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for scikit-build-core-conan 0.9.2
File Interpreter ABI Platform
scikit_build_core_conan-0.9.2-py3-none-any.whl Python 3 none any Details

Total release size: 25.1 kB

Release files / scikit_build_core_conan-0.9.2.tar.gz

Download URL scikit_build_core_conan-0.9.2.tar.gz
Size 16.1 kB
Tags Source
SHA-256 checksum
How to use checksums
d83fb43a83da462f869d03585dcc345c951c38546088a1513f00952321333908
BLAKE2b-256 checksum
How to use checksums
a8868b24173fc6da67039c29e766a22f92b78fecdade7f513e8cb83030a0d7db
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 4, 2026.

Transparency log

Release files / scikit_build_core_conan-0.9.2-py3-none-any.whl

Download URL scikit_build_core_conan-0.9.2-py3-none-any.whl
Size 9.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5567b1b054c2c4a9f275f636ba93e53d44e01acac6c3bf51c0c0625144292ceb
BLAKE2b-256 checksum
How to use checksums
6ae1e492f536178ad65f992850abf5bd5970c8bb65c5ab33007944c8e4611ec1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 4, 2026.

Transparency log

Security for scikit-build-core-conan 0.9.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for scikit_build_core_conan-0.9.2.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 4, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page