Skip to content

Project's structure

Build system

premake5 is used as underlying build system. Asteroid Farm is organized into workspace and projects. The premake5.lua file in root directory defines the workspace, global include directories and includes individual projects. Projects are stored in separate directories, each containing its own premake5.lua file. premage5 generates a master Makefile that includes Makefiles of each project.

External libraries

Libraries used in projects should be stored in vendor folder. Rules for building can be added to the premake file stored there.

Documentation

Documentation is stored in documentation/ folder. The index.md is the main page.

Documentation is generated automatically when the whole projetc is build. You need to have mkdocs-material installed:

pip install mkdocs-material

To generate documentation locally:

cd docs
make

The output files will be generated in docs folder, which is also under version control. After updating documentation and building it, commit the changes in docs folder as well.

Dependencies

  • fmt
  • gtest
  • mkdocs-material