--- id: compiledb version: "0.10.7" license: GPL-3.0-or-later license_treatment: copyleft maintenance: active --- # compiledb — Tool for generating Clang JSON Compilation Database files for make-based build systems. License: copyleft · Maintenance: active · Downloads: 201.3K/mo ## What it is and what it does compiledb is a command-line tool that generates Clang's JSON compilation database format for C/C++ projects built with GNU make. It wraps the make command and extracts compile commands using make's dry-run and keep-going options, avoiding the need for a full clean rebuild. The tool outputs a compile_commands.json file that can be consumed by language servers, IDE plugins, and code analysis tools like YouCompleteMe, cquery, and ccls. The package is designed for large non-cmake codebases where existing tools like YCM-Generator or Bear were either too slow or incompatible. It supports both the standard 'arguments' list format and the 'command' string format for compilation databases, and can parse compile commands from arbitrary build logs or stdin. It runs on Python 3.3+, depends only on click and bashlex, and has been tested on Windows, Linux, and macOS. Use it for: - Set up code navigation and IDE integration for large AOSP or embedded C/C++ projects without rebuilding the entire codebase. - Generate compilation databases for Vim or Neovim with language server plugins (YouCompleteMe, LanguageClient, ALE) to enable code completion and diagnostics. - Index legacy C/C++ codebases with make-based build systems for use with static analysis tools and code browsers. - Integrate compilation database generation into CI/CD pipelines to support code quality and analysis tools without slowing down builds. - Parse existing build logs to retroactively generate compilation databases for offline analysis or tool integration. ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. Generates Clang JSON compilation databases from GNU make-based build systems without requiring a clean rebuild, using make's dry-run mode to extract compile commands. Yes, if you maintain a large make-based C/C++ project and need language server or IDE integration. The low install friction, active maintenance, no security issues, and GPL-3.0-or-later license make it a solid choice for development workflows. Not suitable for proprietary closed-source work due to copyleft licensing. ## Install pip install compiledb uv add compiledb poetry add compiledb ## Installing compiledb Before you install: Low friction: pure Python wheel with only click and bashlex as runtime dependencies. Actively maintained with a recent commit (2026-08-14) and no known vulnerabilities. License in practice: Licensed under GPL-3.0-or-later (copyleft). Any derivative work or distribution must also be licensed under GPLv3 or later; not suitable for proprietary closed-source projects. Quickstart: pip install compiledb # Generate compilation database from make build compiledb make # Or parse from existing build log compiledb --parse build-log.txt Requires GNU make and a Makefile-based build system; does not work with cmake projects (which already generate compilation databases). Verify before relying: - Whether the tool correctly handles cross-compilation scenarios beyond the stated 'cross-compiling friendly' claim in the description. - Performance characteristics on very large codebases compared to similar tools like Bear. ## Package facts - License: GPL-3.0-or-later (copyleft) - Python support: supports_current - Install friction: low - Maintenance: active - Downloads: 201.3K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags clang compilation database generator, make build system indexing, json compilation database, language server protocol setup, c cpp project indexing, make dry-run compilation extraction, code navigation tool setup, c-cpp-tooling, language-server, build-integration [View on SkillFed](https://skillfed.io/packages/compiledb) · [View on PyPI](https://pypi.org/project/compiledb/)