Working with Premake
The Hydra Architecture uses a special forked version of premake that use Luajit with the Luajit FFI module enabled. This gives premake the capability to call C Library functions from our build scripts.
The simplest Premake command is:
Usually you would like Premake to generate project files for a particular toolset, in which case action is one of these toolset identifiers:
You can see a complete list of actions and other options by typing:
Once the files have been generated you can load the solution or workspace into your IDE and build as you normally would.
Creating a Simple Premake Script
Premake is built on Lua, a powerful, fast, light-weight scripting language. Premake scripts are really Lua programs, so anything you can do in Lua can also be done in a Premake script. To this, Premake adds functions for defining solutions, projects, and configurations as well as support for common build configuration tasks. Premake also provides conventions for defining and handling command line options and actions, allowing you to build sophisticated configuration scripts. Because of the descriptive nature of the Lua language, your build scripts will often look more like static configuration files than mini-programs. Here is an example of a fairly typical Premake script for a C++ executable. See the Premake Cookbook for more examples of common configuration tasks.
The indentation in this sample is arbitrary, this is the way I happen to like it. The following sections of this guide will walk you through all of the features of Premake in a somewhat logical fashion. It isn't rocket science, and you probably already have the gist of it from the example above, so feel free to skip around. You can also refer to the Reference section or the Lua Reference Manual for information on a particular function or variable.