cmakelang
Language tools for cmake (format, lint, etc)
What it is and what it does
cmakelang is a suite of QA tools for CMake listfiles, offering formatting, linting, annotation, and ctest output parsing. It includes cmake-format to reformat CMake code according to configurable rules, cmake-lint to check for problems, cmake-annotate to generate HTML documentation, and ctest-to to convert test output to structured formats. Configuration is flexible, accepting YAML, JSON, or Python files, and the tool can automatically discover configuration in parent directories.
The package depends only on six and installs as a pure Python wheel, making it lightweight to add to a build pipeline. However, the project has been abandoned since August 2020, with no maintenance or updates since its initial release. This means it may not support newer CMake syntax or features, and any bugs discovered will not be fixed.
Use it for:
- Enforce consistent CMake code style across a project by running cmake-format in CI/CD pipelines
- Detect common CMake mistakes and anti-patterns using cmake-lint as a pre-commit hook
- Generate HTML documentation from CMake listfiles with cmake-annotate for project reference
- Parse and convert ctest output to JSON or XML for integration with test reporting systems
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides command-line tools to format, lint, and annotate CMake listfiles, plus a utility to parse and convert ctest output to JSON or XML.
Yes, if your CMake project is stable and uses syntax from 2020 or earlier. The tool is lightweight, has no security vulnerabilities, and works well for formatting and linting. However, do not adopt it for new projects or if you rely on recent CMake features—the abandonment since August 2020 means no bug fixes or feature updates will arrive. Consider it a snapshot tool suitable for legacy codebases, not an actively maintained dependency.
Install
cmakelang on PyPI
pip
pip install cmakelanguv
uv add cmakelangpoetry
poetry add cmakelangInstalling cmakelang
Before you install
Installation is straightforward with low friction—a pure Python wheel with only six as a runtime dependency. However, the project is abandoned; the latest release was 2020-08-19 and no updates have been made since.
License in practice
Licensed under GPLv3 (copyleft). Any derivative work or distribution must also be licensed under GPLv3, which may restrict use in proprietary or closed-source projects.
Quickstart
pip install cmakelang
from cmakelang import cmake_format
# Then use cmake-format, cmake-lint, cmake-annotate, or ctest-to from the command line
The package provides command-line tools primarily; programmatic API details are not specified in the fact sheet.
Verify before relying
- Whether the package's programmatic API is stable and documented for direct Python imports
- Current compatibility with modern CMake versions and syntax
- Whether abandonment has led to unresolved bugs or incompatibilities in recent CMake projects
Package facts
| License | GPLv3 (copyleft) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — six |
| Maintenance | abandoned — 2,186 days since the last release |
| First released | |
| Downloads | 1,099,209/month — #4,372 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: cmakelang-0.6.13-py3-none-any.whl
Keywords: cmake, format
Tags
More Quality Assurance packages
Coverage.py measures which lines of Python code…
permissive · top 1,000 on PyPI
ruffRuff is a Python linter and code formatter…
permissive · top 1,000 on PyPI
pexpectPexpect spawns and controls interactive console…
permissive · top 1,000 on PyPI
blackBlack reformats Python source code to a…
permissive · top 1,000 on PyPI
pytest-xdistpytest-xdist distributes pytest tests across…
permissive · top 1,000 on PyPI
cfn-lintValidates AWS CloudFormation templates in YAML…
permissive · top 1,000 on PyPI
cmake-formatFormats, lints, and annotates CMake listfiles,…
copyleft · top 15,000 on PyPI
cmakelintcmakelint parses CMake files and reports style…
permissive · top 15,000 on PyPI
gersemigersemi is a command-line formatter for CMake…
copyleft · top 15,000 on PyPI
cmakeDistributes CMake 4.4.2 as a Python package,…
permissive · top 5,000 on PyPI
toml-sortCommand-line utility and Python library to sort…
permissive · top 15,000 on PyPI
pytest-cmakeIntegrates Pytest with CMake build systems,…
permissive · top 15,000 on PyPI
flake8-formatter-junit-xmlFormats flake8 linting output as JUnit XML,…
permissive · top 15,000 on PyPI
EditorConfigParses and applies EditorConfig files to…
permissive · top 5,000 on PyPI
yamllintyamllint checks YAML files for syntax errors,…
copyleft · top 1,000 on PyPI
flake8-noqaA flake8 plugin that validates the formatting…
copyleft · top 5,000 on PyPI