ConcordFlint

Developing

Install dependencies

Flint needs the Wayland client libraries, the xdg-shell protocol definitions, and the Vulkan headers and loader.

Fedora:

sudo dnf install wayland-devel \
  wayland-protocols-devel vulkan-headers \
  vulkan-loader-devel libxkbcommon-devel

Ubuntu (matches CI):

sudo apt-get install libwayland-dev \
  wayland-protocols libvulkan-dev

Check the install with:

pkg-config --modversion wayland-client \
  wayland-scanner vulkan xkbcommon
which wayland-scanner

Build and check

make        # build ./bin/flint
make check  # build and run the smoke check
make clean  # remove bin/ and dist/

Protocol code

The xdg-shell XML ships with wayland-protocols-devel under /usr/share/wayland-protocols/stable/ as xdg-shell/xdg-shell.xml. Generate the client header and private code with wayland-scanner into bin/ at build time. Never commit generated files.

Style

C11, warnings as errors (-Wall -Wextra -Werror). Format with clang-format (ColumnLimit: 60). Public API lives in include/flint/, internals in src/.