# 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
Debian
> 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 libsqlite3-dev protobuf-compiler libprotobuf-dev
```
2. Install flatpak builder (Optional)
```
sudo apt install -y flatpak-builder
```
3. Install AppImage build tools (Optional)
```
sudo apt install -y wget fuse file
```
Fedora
1. Install build dependencies
```
sudo dnf install -y clang ninja-build cmake meson gtk4-devel glib2-devel libadwaita-devel desktop-file-utils libappstream-glib sqlite-devel protobuf-compiler protobuf-devel
```
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
```
Void Linux (glibc)
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 sqlite-devel protobuf protobuf-devel
```
2. Install flatpak builder (Optional)
```
sudo xbps-install -Sy flatpak-builder
```
3. Install AppImage build tools (Optional)
```
sudo xbps-install -Sy wget fuse file
```
### Flatpak Build Dependencies (Optional)
```
flatpak install --user \
org.gnome.Platform/x86_64/45 \
org.freedesktop.Sdk.Extension.rust-stable/x86_64/23.08
```
## Building
General
1. Enter the `burrow-gtk`
```bash
cd burrow-gtk
```
2. Perform the meson build
```
meson setup build
meson compile -C build
```
Flatpak
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
```
AppImage
1. Enter the `burrow-gtk`
```bash
cd burrow-gtk
```
2. Compile the AppImage
```
./build-aux/build_appimage.sh
```
## Running
General
The compiled binary can be found in `build/src/burrow-gtk`.
```
./build/src/burrow-gtk
```
Flatpak
```
flatpak run com.hackclub.burrow-devel
```
AppImage
The compiled binary can be found in `build-appimage/Burrow-*.AppImage`.
```
./build-appimage/Burrow-*.AppImage
```