49 lines
1.4 KiB
Markdown
49 lines
1.4 KiB
Markdown
# Export Compile Commands - ECC
|
|
Module implementing support for [JSON Compilation Database Format
|
|
Specification](https://clang.llvm.org/docs/JSONCompilationDatabase.html).
|
|
|
|
This is an alternative to
|
|
[tarruda's](https://github.com/tarruda/premake-export-compile-commands) module,
|
|
which does one simple thing - generates one `compile_commands.json` file for
|
|
your project.
|
|
|
|
Tested with clangd-13.
|
|
|
|
## Requirements
|
|
Premake 5.0.0 or later.
|
|
|
|
## How to use
|
|
Download premake-ecc and place it near your premake5.lua script. Then require it
|
|
from your premake script
|
|
|
|
```lua
|
|
require "ecc/ecc"
|
|
```
|
|
|
|
After you simply can call:
|
|
|
|
```
|
|
premake5 ecc
|
|
```
|
|
|
|
Moldule will generate **one** `compile_commands.json` file near your main
|
|
premake script. During generation it will use the default config (the first one
|
|
you have specified in script). If you want to select specific config just pass
|
|
it's name with command line option:
|
|
|
|
```
|
|
premake5 --config=release ecc
|
|
```
|
|
|
|
Careful! `config` option case sensitive! If there is no config passed via
|
|
command line, module will choose the default one.
|
|
|
|
Note: if you want to embed this module into your premake build follow
|
|
the [manual](https://premake.github.io/docs/Embedding-Modules/)
|
|
|
|
## Future plans
|
|
- Add unit tests
|
|
|
|
## Alternatives
|
|
- [export-compile-commands](https://github.com/tarruda/premake-export-compile-commands)
|
|
- [bear](https://github.com/rizsotto/Bear)
|