Premake module to export compiler commands in JSON Compilation Database Format
Pull request Compare This branch is 1 commit ahead, 1 commit behind tarruda:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

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 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.