2026-07-06 14:17:22 +10:00
2026-07-06 14:17:22 +10:00
2026-06-13 19:45:36 +10:00
2026-06-13 19:45:36 +10:00
2026-07-06 14:17:22 +10:00
2026-07-06 14:17:22 +10:00

Building

Install dependencies (uthash, libffi) then:

meson setup builddir
meson compile -C builddir

Install with:

meson install -C builddir

Cross Compiling for Windows

We all hate Windows, right? As much as we hate it, people still use it, so it's nice to be able to run our good software on their crappy platform.

You'll need the cross compiler (install command is for Arch and derivatives):

sudo pacman -S mingw-w64-gcc

First, cross compile libffi for Windows (look up a guide) and install it to /usr/x86_64-w64-mingw32/.

Cross compile for Windows with the following commands:

meson setup --cross-file x86_64-w64-mingw32.txt -Ddefault_library=static --prefix=/usr/x86_64-w64-mingw32/ windows-builddir
meson compile -C windows-builddir

If you'd like it to be installed as a library to link with (for example with Solstice), run

meson install -C windows-builddir

This will install it to /usr/x86_64-w64-mingw32/, for convenient usage with other Windows cross compilation projects.

You may need to run ldconfig or reboot to update your ld cache.

Bytecode Format

Under the hood, Ground uses a bytecode format to store things.

Changes from old CGround

extern instruction

extern no longer loads a dynamic library from /usr/lib/ground, it is now used to detail a system shared library to open.

Format: extern "libName" "symbolName" !functionName -returnType -argType...

Description
Yes I'm rewriting it again (but even better)
Readme 542 KiB
Languages
C 99%
Meson 0.9%
Makefile 0.1%