/premake-export-compile-commands

Premake module to export compiler commands in JSON Compilation Database Format

Primary LanguageLua

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.