Premake module to export compiler commands in JSON Compilation Database Format
Go to file
2016-01-01 19:11:38 +00:00
_manifest.lua Add boilerplate based on premake-github-package 2015-11-29 12:25:08 -03:00
_preload.lua Add boilerplate based on premake-github-package 2015-11-29 12:25:08 -03:00
export-compile-commands.lua Fixing path so clang-tidy can find the commands. 2016-01-01 19:11:38 +00:00
README.md Remove options and generate one json per config/platform 2015-12-05 08:31:33 -03:00

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.