Skip to content

lerosua/gmchess

Repository files navigation

GMChess

GMChess preview

GMChess is a Chinese chess (Xiangqi) desktop game for Linux. The current branch has been refreshed around GTK4, Meson, Debian packaging, and updated application artwork.

Current Status

  • Version: 0.40.1
  • UI toolkit: GTK4 + libadwaita
  • Build system: Meson + Ninja
  • Packaging: Debian/Ubuntu .deb support is included
  • Gameplay: human-versus-engine play, free play, and game-record handling
  • Engine: bundled EleEye/xqwizard-derived Chinese chess engine
  • Resources: bundled board themes, sound effects, application icons, and player avatars

The old gtkmm UI has been removed from the active application code. The GTK interface now uses GTK4 APIs, including GTK4 list models/views and non-deprecated dialog and file-selection APIs where applicable.

Build

Install the build dependencies on Ubuntu/Debian:

sudo apt install build-essential meson ninja-build pkg-config gettext libgtk-4-dev libadwaita-1-dev

Build the project:

meson setup builddir-gtk4
meson compile -C builddir-gtk4

Run the local build:

./builddir-gtk4/src/gmchess

The local build resolves bundled resources and the engine from the source/build tree, so it can be run before installation.

Debian Package

Build a binary Debian package:

./build-deb.sh

Generated packages are placed in the sibling builds/ directory, for example:

../builds/gmchess_0.40.1_amd64.deb

There is also a source package helper:

./build-source.sh

GNOME Software And Flathub

The project installs a desktop file, hicolor application icons, and AppStream MetaInfo metadata for software centers such as GNOME Software.

Validate the installed desktop metadata locally:

meson setup builddir-gtk4
meson compile -C builddir-gtk4
DESTDIR="$PWD/builddir-gtk4/stage" meson install -C builddir-gtk4
appstreamcli validate data/io.github.lerosua.gmchess.metainfo.xml

A Flatpak manifest draft is provided as io.github.lerosua.gmchess.yml. Before a Flathub submission, create and push a stable release tag, then replace the manifest source branch with that tag and its commit. Flathub submissions should be tested with:

flatpak run --command=flathub-build org.flatpak.Builder --install io.github.lerosua.gmchess.yml
flatpak run io.github.lerosua.gmchess
flatpak run --command=flatpak-builder-lint org.flatpak.Builder manifest io.github.lerosua.gmchess.yml
flatpak run --command=flatpak-builder-lint org.flatpak.Builder repo repo

Assets

Application icons are installed both as the main gmchess.png resource and as hicolor icons in common desktop sizes. Player avatars and the current-turn marker are bundled in data/.

The GitHub preview image lives at:

doc/images/preview.png

License And Origin

GMChess is released under GPLv2. See COPYING.

The chess engine is based on xqwizard:

https://sourceforge.net/projects/xqwizard/

xqwizard is also released under GPLv2. GMChess also includes some data derived from that project, such as book.dat.

The original GMChess project was migrated from Google Code to GitHub by lerosua. This branch continues the codebase with GTK4 and packaging updates.

About

chinese chess for linux/mac osx

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors