2026-06-13 10:07:07 +02:00
# wlgol
2026-06-13 10:42:41 +02:00
Simple Wayland Game of Life in C11. Draws directly into a shared-memory buffer (no OpenGL/Vulkan).
2026-06-13 10:07:07 +02:00
2026-06-13 10:42:41 +02:00
- Build definition: `CMakeLists.txt`
- Generated code: `xdg-shell.xml` is vendored; `wayland-scanner` produces `xdg-shell.h` and `xdg-shell.c` inside `build/`
- Source layout: `wlgol.c` is the entry point; `tkeyboard.c` , `tpointer.c` , `hashtable.c` are modules; headers live in `include/` ; tests live in `tests/`
2026-06-13 10:07:07 +02:00
2026-06-13 10:42:41 +02:00
## Dependencies
2026-06-13 10:07:07 +02:00
2026-06-13 10:42:41 +02:00
Needs `cmake` , `ninja` , `pkg-config` , `wayland-scanner` , plus the runtime libraries `wayland-client` , `wayland-cursor` , and `xkbcommon` .
2026-06-13 10:07:07 +02:00
2026-06-13 10:42:41 +02:00
## Common commands
2026-06-13 10:07:07 +02:00
2026-06-13 10:42:41 +02:00
Configure (from repo root):
2026-06-13 10:07:07 +02:00
``` bash
2026-06-13 10:42:41 +02:00
cmake -G Ninja -B build
2026-06-13 10:07:07 +02:00
```
2026-06-13 10:42:41 +02:00
Build:
2026-06-13 10:07:07 +02:00
``` bash
cmake --build ./build
```
2026-06-13 10:22:08 +02:00
Run tests:
``` bash
ctest --test-dir build
```
2026-06-13 10:42:41 +02:00
Run a single test directly:
``` bash
./build/test_hashtable
```
Run the program (requires a running Wayland compositor):
2026-06-13 10:07:07 +02:00
``` bash
./build/wlgol
```
2026-06-13 10:42:41 +02:00
## Notes
- `compile_commands.json` is generated automatically in the build directory because `CMAKE_EXPORT_COMPILE_COMMANDS` is set in `CMakeLists.txt` .
- The project currently has one CTest target named `Hashtable` .