skillfed

scikit-build

Improved build system generator for Python C/C++/Fortran/Cython extensions

scikit-build v0.19.1 1.3M downloads/30d#4,044 on PyPI535
Permissive license Active released

What it is and what it does

scikit-build acts as glue between Python's setuptools and CMake, letting you define native extension builds using CMake instead of setuptools' native build syntax. It reads your CMakeLists.txt and integrates the compiled artifacts into a Python package, handling platform differences and compiler selection automatically.

The package is designed for projects that already use CMake for their C/C++/Fortran/Cython code and want to package that code as a Python extension. It supports Python 3.8 through 3.14, modern Visual Studio versions including 2026, and handles cross-platform compilation details. The project is actively maintained with recent updates for compiler and setuptools compatibility.

Use it for:

  • Build a library with C extensions defined in CMake and distribute it as a PyPI package.
  • Compile Fortran code into a Python module while keeping your build logic in CMake.
  • Integrate an existing C++ library into Python by wrapping it with Cython and using CMake.
  • Support multiple platforms with a single CMake configuration for native extensions.
  • Migrate a project from raw setuptools extension building to CMake without rewriting build logic.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

scikit-build bridges setuptools and CMake to compile CPython C/C++/Fortran/Cython extensions, handling integration between Python packaging and native code compilation.

Yes, if you are building Python C/C++/Fortran/Cython extensions and already use or prefer CMake. The package is actively maintained, has low install friction, carries no security vulnerabilities, and is permissively licensed. However, the description recommends evaluating scikit-build-core first if you do not require extensive build customization.

Install

scikit-build on PyPI

pip

pip install scikit-build

uv

uv add scikit-build

poetry

poetry add scikit-build

Installing scikit-build

Before you install

Low install friction with a pure-wheel distribution and only five runtime dependencies. Actively maintained with recent releases and ongoing support for current Python versions.

License in practice

Licensed under MIT (permissive), so you can use it freely in commercial and open-source projects without significant restrictions.

Quickstart

pip install scikit-build

Create setup.py with CMake configuration in CMakeLists.txt, then run:
python setup.py build

CMake 3.5 or later must be installed on your system; scikit-build is a build-time tool requiring a C/C++/Fortran compiler toolchain.

Verify before relying

  • Whether scikit-build-core is recommended as a replacement for most new projects and migration guidance.
  • Specific performance characteristics or build-time overhead compared to other build backends.
  • Exact usage patterns and setup.py configuration required for typical extension projects.

Package facts

License not declared (permissive)
Python support supports the current Python release (>=3.8)
Install friction low — pure-Python wheel
Runtime dependencies 5 — distro, packaging, setuptools, tomli, wheel
Maintenance actively maintained — 52 days since the last release
Last repo commit
First released
Downloads 1,331,713/month — #4,044 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: scikit_build-0.19.1-py3-none-any.whl

Keywords: scikit-build

Development Status :: 2 - Pre-AlphaIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseNatural Language :: EnglishProgramming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Typing :: Typed

Tags

cmake python extension buildc++ extension buildersetuptools cmake integrationnative code compilation pythonfortran cython build system
cmakenative-extensionsbuild-system

More Build Tools packages