Fillion-Robin & Schreiner - A modern build-backend for CPython C/C++/Fortran/Cython extensions

Learn about scikit-build-core, a modern build backend for CPython that simplifies building C/C++/Fortran/Cython projects using CMake. Covers key features & real-world impact.

Key takeaways
  • scikit-build-core is a modern build backend for CPython extensions that simplifies building C, C++, Fortran, and Cython projects

  • Key improvements over traditional build systems:

    • Decouples build backend from frontend per PEP 517/518
    • Provides cross-platform support via CMake
    • Enables automatic dependency management
    • Supports editable mode for development
    • Integrates with IDE tooling
  • Features powerful configuration options:

    • Static configuration via pyproject.toml
    • Dynamic metadata updates
    • Plugin system for extensibility
    • File generation capabilities
    • Environment variable control
  • Handles build dependencies intelligently:

    • Automatically manages CMake and Ninja requirements
    • Can use system-installed tools when available
    • Supports version-specific requirements
    • Enables cross-compilation
  • Real-world adoption and impact:

    • ~800,000 downloads/month for scikit-build-classic
    • Used by major projects like NVIDIA
    • CMake wheel: 6.5M downloads/month
    • Ninja wheel: ~10M downloads/month
    • Supports 250+ packages including scientific computing tools
  • Provides development-friendly features:

    • Debugging support for native code
    • Fast incremental builds via Ninja
    • Integration with external packages
    • Standardized wheel building process
    • Support for multiple build configurations
  • Backwards compatible while modernizing:

    • Maintains support for existing scikit-build-classic projects
    • Provides migration path to new features
    • Leverages modern Python packaging standards
    • Eliminates need for setup.py