burrow/docs/GTK_APP.md
David Zhong ab73183b2b
Add ability to build GTK app AppImage (#240)
#238 Add AppImage build support

Implements

- Downgrade to libadwaita 1.3 for wider distro support
- Add build script, workflow, and docs for AppImage
- Add build docs for Debian (apt) and Void Linux
- Building AppImage in CI
2024-02-15 19:27:14 -08:00

170 lines
2.8 KiB
Markdown

# Linux GTK App Getting Started
Currently, the GTK App can be built as a binary or as an AppImage.
Note that the flatpak version can compile but will not run properly!
## Dependencies
### Install Build Dependencies
<details>
<summary>Debian</summary>
> Note: Burrow currently cannot compile on Debian Stable (Bookworm) due to its outdated dependencies
1. Install build dependencies
```
sudo apt install -y clang meson cmake pkg-config libgtk-4-dev libadwaita-1-dev gettext desktop-file-utils
```
2. Install flatpak builder (Optional)
```
sudo apt install -y flatpak-builder
```
3. Install AppImage build tools (Optional)
```
sudo apt install -y wget fuse file
```
</details>
<details>
<summary>Fedora</summary>
1. Install build dependencies
```
sudo dnf install -y clang ninja-build cmake meson gtk4-devel glib2-devel libadwaita-devel desktop-file-utils libappstream-glib
```
2. Install flatpak builder (Optional)
```
sudo dnf install -y flatpak-builder
```
3. Install AppImage build tools (Optional)
```
sudo dnf install -y util-linux wget fuse fuse-libs file
```
</details>
<details>
<summary>Void Linux (glibc)</summary>
1. Install build dependencies
```
sudo xbps-install -Sy gcc clang meson cmake pkg-config gtk4-devel gettext desktop-file-utils gtk4-update-icon-cache appstream-glib
```
2. Install flatpak builder (Optional)
```
sudo xbps-install -Sy flatpak-builder
```
3. Install AppImage build tools (Optional)
```
sudo xbps-install -Sy wget fuse file
```
</details>
### Flatpak Build Dependencies (Optional)
```
flatpak install --user \
org.gnome.Platform/x86_64/45 \
org.freedesktop.Sdk.Extension.rust-stable/x86_64/23.08
```
## Building
<details>
<summary>General</summary>
1. Enter the `burrow-gtk`
```bash
cd burrow-gtk
```
2. Perform the meson build
```
meson setup build
meson compile -C build
```
</details>
<details>
<summary>Flatpak</summary>
1. Compile and install the flatpak
```
flatpak-builder
--user --install --force-clean --disable-rofiles-fuse \
flatpak_debug/ \
burrow-gtk/build-aux/com.hackclub.burrow.devel.json
```
</details>
<details>
<summary>AppImage</summary>
1. Enter the `burrow-gtk`
```bash
cd burrow-gtk
```
2. Compile the AppImage
```
./build-aux/build_appimage.sh
```
</details>
## Running
<details>
<summary>General</summary>
The compiled binary can be found in `build/src/burrow-gtk`.
```
./build/src/burrow-gtk
```
</details>
<details>
<summary>Flatpak</summary>
```
flatpak run com.hackclub.burrow-devel
```
</details>
<details>
<summary>AppImage</summary>
The compiled binary can be found in `build-appimage/Burrow-*.AppImage`.
```
./build-appimage/Burrow-*.AppImage
```
</details>