/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 compile_commands.json file per config/platform combination in each workspace, all under its own 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/debug_x32/compile_commands.json...
Generated WORKSPACE_BUILD_DIR/debug_x64/compile_commands.json...
Generated WORKSPACE_BUILD_DIR/release_x32/compile_commands.json...
Generated WORKSPACE_BUILD_DIR/release_x64/compile_commands.json...

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