Skip to content

BayernMuller/cppllvm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

29 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation


cppllvm

ctidy cformat

Checks Wheels ctidy Wheels cformat Release ctidy Release cformat

Overview

cppllvm makes it easy to set up a consistent C/C++ developer environment with Python packaging.

Instead of asking every developer or CI job to install and manage a matching LLVM toolchain by hand, you can install ctidy and cformat with uv and immediately get reproducible clang-tidy and clang-format commands in your environment.

This is useful when you want:

  • fast setup for new developers
  • the same lint/format tool versions in local development and CI
  • LLVM tooling without depending on a system package manager
  • Python-managed C/C++ tooling that is easy to add, pin, and upgrade

Releases

Package PyPI project Release trigger Package docs
ctidy ctidy ctidy-v* tag packages/ctidy/README.md
cformat cformat cformat-v* tag packages/cformat/README.md

PyPI releases are wheel-only. Neither package publishes an sdist.

Platform Availability

Available wheels are limited to the upstream LLVM 20 prebuilt assets pinned by this repository.

Platform Python ABI ctidy cformat
Linux x86_64 cp39+ โœ… โœ…
macOS x86_64 cp39+ โœ… โœ…
macOS arm64 cp39+ โœ… โœ…
Windows x86_64 cp39+ โœ… โœ…

If the upstream static build release does not publish an asset for an OS/CPU pair, this repository does not produce a wheel for that platform.

Installation

Recommended package installation is with uv:

uv add ctidy
uv add cformat

For one-off usage without modifying a project environment, use uvx:

uvx ctidy --version
uvx cformat --version

Package-specific usage and examples live in the package READMEs.

Build And Distribution Model

This repository does not build LLVM from source. During wheel builds, each package only:

  • downloads pinned prebuilt static binaries from muttleyxd/clang-tools-static-binaries
  • verifies their .sha512sum files
  • for ctidy, downloads official LLVM release headers for lib/clang/<major>/include
  • for ctidy, bundles the upstream LLVM run-clang-tidy.py

Repository Layout

packages/
  cformat/   Python package for bundled clang-format
  ctidy/     Python package for bundled clang-tidy tools
tests/       Repository-level tests for packaging and CLI behavior
tools/       Release and maintenance helpers

Local Development

Install the workspace tooling:

uv sync --group dev

Run the repository checks:

PYTHONPATH=packages/ctidy/src:packages/cformat/src:. python -m unittest discover -s tests
ruff check .
ty check .

About

๐Ÿ‰ Prebuilt clang-tidy and clang-format packaged as reproducible Python wheels for consistent C/C++ tooling across local dev and CI.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages