Skip to main content

A setuptools extension, for building cpython extensions with zig build

Project description

Setuptools zig build

A setuptools extension, for building cpython extensions with zig build, enabling simple source-only pip distributions that compile at install time.

check out zig-zon for a full example.

Example

Your project needs to have:

  • setup.py to configure this setuptools extension to run during python's wheel build
  • build.zig to configure the build of the shared library
  • build.zig.zon optionally - to specify zig dependencies
from setuptools import Extension
from setuptools import setup

setup(
    name='zig-zon',
    packages=[],
    zig_build={
        # stores zig's depdendency pacakges in python's sdist. This requires a call to
        # CPython.addSdistList(b); in `build.zig`
        # If set to False, potential dependencies will be downloaded by zig instead.
        "sdist": True,
        # tries to import 'ziglang' to get a zig compiler when building wheel
        "use_ziglang_python_package": True,
        # passes -Doptimize= to zig build
        "optimize": "ReleaseSmall",
        # passes -Dversion=<pip package version> to zig build
        "pass_version_option": True,
        # extra arguments to zig build. In this case we pass the `install` and `test` steps
        'extra_args': [
            "install", "test",
        ],
    },
    # Names of the libraries your `build.zig` will produce, and this module will install
    ext_modules=[Extension('zig_zon', [])],
)

References

@ruamel and setuptools-zig

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

setuptools_zig_build-0.2.1.tar.gz (4.7 kB view details)

Uploaded Source

File details

Details for the file setuptools_zig_build-0.2.1.tar.gz.

File metadata

  • Download URL: setuptools_zig_build-0.2.1.tar.gz
  • Upload date:
  • Size: 4.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for setuptools_zig_build-0.2.1.tar.gz
Algorithm Hash digest
SHA256 a224680d76e49500d7335343ee0810b3141e8cd31f0a9922da12464bf25954a3
MD5 ffabdd7865da2fe79fd9610aaa17d792
BLAKE2b-256 3225413623fbf548107f29067255d2fbde5abaaad02a14d2973876808c50dd44

See more details on using hashes here.

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