50 lines
1.1 KiB
Markdown
50 lines
1.1 KiB
Markdown
# wlgol
|
|
|
|
Simple Wayland Game of Life in C11. Draws directly into a shared-memory buffer (no OpenGL/Vulkan).
|
|
|
|
- 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/`
|
|
|
|
## Dependencies
|
|
|
|
Needs `cmake`, `ninja`, `pkg-config`, `wayland-scanner`, plus the runtime libraries `wayland-client`, `wayland-cursor`, and `xkbcommon`.
|
|
|
|
## Common commands
|
|
|
|
Configure (from repo root):
|
|
|
|
```bash
|
|
cmake -G Ninja -B build
|
|
```
|
|
|
|
Build:
|
|
|
|
```bash
|
|
cmake --build ./build
|
|
```
|
|
|
|
Run tests:
|
|
|
|
```bash
|
|
ctest --test-dir build
|
|
```
|
|
|
|
Run a single test directly:
|
|
|
|
```bash
|
|
./build/test_hashtable
|
|
```
|
|
|
|
Run the program (requires a running Wayland compositor):
|
|
|
|
```bash
|
|
./build/wlgol
|
|
```
|
|
|
|
## 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`.
|
|
|