https://github.com/rizsotto/bear
Bear is a tool that generates a compilation database for clang tooling.
https://github.com/rizsotto/bear
build-system build-tool clang compilation-database
Last synced: 5 months ago
JSON representation
Bear is a tool that generates a compilation database for clang tooling.
- Host: GitHub
- URL: https://github.com/rizsotto/bear
- Owner: rizsotto
- License: gpl-3.0
- Created: 2012-10-30T14:27:29.000Z (over 13 years ago)
- Default Branch: master
- Last Pushed: 2026-01-10T04:32:48.000Z (5 months ago)
- Last Synced: 2026-01-11T00:39:16.187Z (5 months ago)
- Topics: build-system, build-tool, clang, compilation-database
- Language: Rust
- Homepage:
- Size: 2.71 MB
- Stars: 6,124
- Watchers: 55
- Forks: 349
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: COPYING
- Code of conduct: CODE_OF_CONDUCT.md
- Agents: AGENTS.md
Awesome Lists containing this project
README
[](https://repology.org/project/bear-clang/versions)
[](https://github.com/rizsotto/Bear/releases)
[](https://github.com/rizsotto/Bear/releases)
[](https://github.com/rizsotto/Bear/actions)
[](https://github.com/rizsotto/Bear/graphs/contributors)
[](https://gitter.im/rizsotto/Bear)
ʕ·ᴥ·ʔ Build EAR
===============
Bear is a tool that generates a compilation database for clang tooling.
The [JSON compilation database][JSONCDB] is used in the clang project to
provide information on how a single compilation unit is processed. With this,
it is easy to re-run the compilation with alternate programs.
Some build systems natively support the generation of a JSON compilation
database. For projects that do not use such build tools, Bear generates the
JSON file during the build process.
[JSONCDB]: http://clang.llvm.org/docs/JSONCompilationDatabase.html
How to install
--------------
Bear is [packaged](https://repology.org/project/bear-clang/versions) for many
distributions. Check your distribution's package manager. Alternatively, you
can [build it](INSTALL.md) from source.
How to use
----------
After installation, use it like this:
bear --
The output file, `compile_commands.json`, is saved in the current directory.
For more options, you can check the man page or pass the `--help` parameter.
Note that if you want to pass parameters to Bear, pass them _before_ the `--`;
everything after that is considered part of the build command.
Please be aware that some package managers still ship the 2.4.x release. In
that case, please omit the extra `--` or consult your local documentation.
For more information, read the man pages or the project [wiki][WIKI], which
talks about limitations, known issues, and platform-specific usage.
Problem reports
---------------
Before opening a new problem report, please check the [wiki][WIKI] to see if
your problem is a known issue with a documented workaround. It's also helpful
to look at older (possibly closed) [issues][ISSUES] before opening a new one.
If you decide to report a problem, please provide as much context as possible
to help reproduce the error. If you just have a question about usage, please
don't be shy; ask your question in an issue or in our [chat][CHAT].
If you've found a bug and have a fix for it, please share it by opening a pull
request.
Please follow the [contribution guide][GUIDE] when you do.
[ISSUES]: https://github.com/rizsotto/Bear/issues
[WIKI]: https://github.com/rizsotto/Bear/wiki
[CHAT]: https://gitter.im/rizsotto/Bear/discussions
[GUIDE]: https://github.com/rizsotto/Bear/blob/master/CONTRIBUTING.md