Getting Started

This document is aimed at programmers looking to write a new tool using the foundation library.

Including Forge

Forge has been packaged for Arch Linux as libforge. See the Arch Linux Wiki for more details on installing user packages.

Meson subproject

Meson has support for including Forge as a regular system dependency, before falling back to including the source as a subproject (see Building from source):

meson.build

forge_dep = dependency(
    'forge',
    version : '>=0.1.0',
    fallback : ['forge', 'forge_dep'])

subprojects/forge.wrap

[wrap-git]
url = https://git.sr.ht/~rycwo/forge
revision = master # or git rev, e.g. 0.1.0

Building from source

The source code for Forge is hosted on sr.ht.

Requirements

Build Dependencies

The exact list of dependencies can be found in the root meson.build.

Installing requirements with Arch Linux

These instructions assume you have read the Arch Linux Wiki entry on installing AUR packages.

pacman -Syu meson ninja glew glslang

# Install tmplgen from Arch User Repository
git clone https://aur.archlinux.org/tmplgen.git
cd tmplgen
makepkg --syncdeps --install # -si in short

Alternatively with Yay:

yay -Syu meson ninja glew glslang tmplgen

OpenGL libraries are provided by your graphics drivers.

Installing requirements with other Linux distributions

Meson, Ninja, Glew, and Glslang should be packaged for all major Linux distributions. tmplgen can be built from source as a standard Go package.

Compiling and installing

Standard Meson build.

git clone https://git.sr.ht/~rycwo/forge
cd forge
meson setup --buildtype release build
meson compile -C build
meson test -C build # Optional
meson install -C build

Hello, World!

TODO: First application boilerplate; and commonly used modules and features.


  1. The graphics backend is designed to be swappable at compile-time. At the moment only a reference implementation for OpenGL 4.6 is available. Patches for additional backends are welcome! ↩︎