Project types

predefined project types

build has 8 predefined project types with corresponding convenience functions to create those projects.
Each convenience function has a number of arguments allowing to specify additional parameters for a project like additional include paths, defines, and even a Lua function that can process additional configuration needs. Here is the list of projects along with details for each of them:

  • 3rd party library (project_3rd.lua)
    Used to build 3rd party libraries and external code.
    Function to add projects of this type: addProject_3rdParty_lib(_name, _libFiles, _exceptions)

  • Command line tool (project_cmdtool.lua)
    Used to create command line/console tools.
    Function to add projects of this type: addProject_cmd(_name)

  • Game (project_game.lua)
    A game project, which assumes a need for bgfx for rendering and rapp for input, threading, console, etc.
    Function to add projects of this type: addProject_game(_name)

  • Library (project_lib.lua)
    A library project which can be one of: run-time library, game library or a tool library.
    Function to add projects of this type: addProject_lib(_name, _libType, _shared, _nameAppend, _disablePCH)(_name, _libFiles, _exceptions)

  • Library sample project (project_lib_sample.lua)
    Libraries can be distributed independently and can provide their own samples. This is a template for library samples.
    Function to add projects of this type: addProject_lib_sample(_name, _sampleName)

  • Library unit test project (project_lib_test.lua)
    Unit testing for libraries.
    Function to add projects of this type: addProject_lib_test(_name)

  • Library tool/utility (project_lib_tool.lua)
    If a library needs to provide a helper tool - this is a template to use.
    Function to add projects of this type: addProject_lib_tool(_name, _toolNname)

  • Qt 5 based project (library or executable) (project_qt.lua)
    Qt 5 based projects, either widget/utility libraries or GUI tools
    Function to add projects of this type: addProject_qt(_name, _libProjNotExe, _includes, _prebuildcmds, _extraQtModules)