aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
authorEmil A. Overbeck <emil.a.overbeck@gmail.com>2026-07-17 23:48:17 +0200
committerEmil A. Overbeck <emil.a.overbeck@gmail.com>2026-07-17 23:48:17 +0200
commit655ec946e63fcf2234f67a837cc7602099b6c301 (patch)
treefe017792cb6053b54dad13ea776cc61b193e2bfe /README.md
parent716cd9cf495835dc3a1bb0045e64f3f954cf3a62 (diff)
downloadforts_clone-655ec946e63fcf2234f67a837cc7602099b6c301.tar.gz
forts_clone-655ec946e63fcf2234f67a837cc7602099b6c301.zip
Better Steam path detection and build guide
Diffstat (limited to 'README.md')
-rw-r--r--README.md40
1 files changed, 38 insertions, 2 deletions
diff --git a/README.md b/README.md
index a164756..9d43332 100644
--- a/README.md
+++ b/README.md
@@ -5,11 +5,14 @@ content driven by Lua. Work in progress. See CLAUDE.md for details.
## Stack
-C++20, Meson/Ninja (Podman), SDL3, Dear ImGui, a custom mass-spring physics
-solver, Lua 5.4 with sol2, and stb_image.
+C++20, Meson/Ninja, SDL3, Dear ImGui, a custom mass-spring physics solver,
+Lua 5.4 with sol2, and stb_image. Box2D is linked but idle; bgfx, SoLoud, ENet
+and EnTT are planned but not yet wired up.
## Build and run
+### Container (reproducible, any distro)
+
```sh
podman build -t forts-clone-dev .
podman run --rm -v "$PWD":/src:Z --userns=keep-id localhost/forts-clone-dev:latest \
@@ -17,6 +20,39 @@ podman run --rm -v "$PWD":/src:Z --userns=keep-id localhost/forts-clone-dev:late
./builddir/forts-clone # run from repo root
```
+The container builds every dependency into `/usr/local` and links Lua
+statically, so the resulting binary runs on any host. You still run it on the
+host (it needs the host's SDL3 and a display).
+
+### Local (Arch Linux)
+
+`meson.build` falls back to system packages, so a native build only needs the
+libraries the code actually uses. bgfx, SoLoud, ENet and EnTT are part of the
+planned stack but not yet wired up, so they are not required to build.
+
+```sh
+# repo packages
+sudo pacman -S --needed meson ninja gcc pkgconf sdl3 lua54 glm box2d
+
+# sol2 (header-only Lua bindings) from the AUR, e.g. with an AUR helper
+paru -S sol2 # or: yay -S sol2
+
+meson setup builddir
+meson compile -C builddir
+./builddir/forts-clone # run from repo root
+```
+
+Native builds link Lua dynamically against the system `lua54`, which is fine
+when you build and run on the same machine.
+
+### Removing the container image
+
+```sh
+podman rmi localhost/forts-clone-dev:latest # drop the dev image
+podman image prune -f # drop dangling build layers
+rm -rf builddir # meson dir, reconfigure after
+```
+
## Assets
The repo ships CC0 placeholders only. If you own Forts, real textures load at