Premake module to export compiler commands in JSON Compilation Database Format
Lua
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
README.md
_manifest.lua
_preload.lua
export-compile-commands.lua

README.md

Generate compile_commands.json for premake projects

This module implements JSON Compilation Database Format Specification for premake projects.

Install this module somewhere premake can find it, for example:

git clone https://github.com/tarruda/premake-export-compile-commands export-compile-commands

Then put this at the top of your system script(eg: ~/.premake/premake-system.lua):

require "export-compile-commands"

Note that while possible, it is not recommended to put the require line in project-specific premake configuration because the "export-compile-commands" module will need to be installed everywhere your project is built.

After the above steps, the "export-compile-commands" action will be available for your projects:

premake5 export-compile-commands

The export-compile-commands action will generate one json file per config/platform combination in each workspace, all under the compile_commands subdirectory. For example, say you have defined debug and release configurations with x32 and x64 platforms, the output will be something like:

Generated WORKSPACE_BUILD_DIR/compile_commands/debug_x32.json...
Generated WORKSPACE_BUILD_DIR/compile_commands/debug_x64.json...
Generated WORKSPACE_BUILD_DIR/compile_commands/release_x32.json...
Generated WORKSPACE_BUILD_DIR/compile_commands/release_x64.json...

where each file contain the compilation commands for the corresponding config/platform combo.