Introduction
In this guide we deal with building the Liri projects from git. Check in the Contributor Guide how to get sources from the git repositories.
Dependencies
We need:
- Git (>= 1.6.x)
 - A working C++ compiler
 - Qt (>= 6.6)
 - qtbase
 - qtdoc
 - qtdeclarative
 - qtgraphicaleffects
 - qtquickcontrols2
 - qtsvg
 - qtwayland
 - qttools
 - qtmultimedia
 - qtwebengine
 - cmake (>= 3.10)
 
Install dependencies
Build essentials:
| Distro | Command | 
|---|---|
| Debian | sudo apt-get install -y build-essential clang git | 
| Arch Linux | sudo pacman -Syu base-devel git | 
| Fedora | sudo dnf install -y clang git | 
| OpenSUSE | sudo zypper install clang git-core | 
Qt and cmake:
| Distro | Command | 
|---|---|
| Debian | sudo apt-get install -y qt6-default qtquickcontrols2-6-dev qml-module-qtwayland-compositor qtwayland6-dev-tools qtwebengine6-dev-tools qtwebengine6-private-dev qtwebengine6-dev qtmultimedia6-dev qtsvg6 qt6-doc qttools6-dev cmake ninja | 
| Arch Linux | sudo pacman -Syu qt6-quickcontrols2 qt6-wayland qt6-webengine qt6-multimedia qt6-svg qt6-doc qt6-tools qt6-5compat cmake ninja | 
| Fedora | sudo dnf install -y qt6-qtbase-static qt6-qtbase-private-devel qt6-qtquickcontrols2-devel qt6-qtwayland-devel qt6-qtmultimedia-devel qt6-qtwebengine-devel qt6-qtsvg-devel qt6-doc-devel qt6-qttools-devel qt6-qt5compat-devel cmake ninja | 
| OpenSUSE | sudo zypper install libqt6-qtquickcontrols2 libqt6-qtquickwayland-devel libqt6-qtwayland-private-headers-devel libqt6-qtwebengine-devel libqt6-qtmultimedia-devel libqt6-qtsvg-devel libqt6-qtdoc-devel libqt6-qttools-devel cmake ninja | 
Other dependencies:
| Distro | Command | 
|---|---|
| Debian | sudo apt-get install -y extra-cmake-modules libwayland-dev wayland-protocols libpam0g-dev libpolkit-qt6-1-dev libpolkit-gobject-1-dev libkf6solid-dev libsystemd-dev libdrm-dev libgbm-dev libinput-dev libxcb-cursor-dev libxcursor-dev libpulse-dev libkf6networkmanagerqt-dev libmodemmanagerqt-dev libglib2.0-dev dconf-service dconf-cli dconf-gsettings-backend dconf-tools libpipewire-0.2-dev gstreamer1.0-pipewire libxkbcommon-dev libqtgstreamer-dev libflatpak-dev libappstreamqt-dev | 
| Arch Linux | sudo pacman -Syu extra-cmake-modules wayland pam polkit-qt6 solid libdrm libinput xcb-util-cursor pipewire-pulse networkmanager-qt modemmanager-qt glib2 dconf pipewire libxkbcommon flatpak appstream-qt libxcvt libdisplay-info | 
| Fedora | sudo dnf install -y extra-cmake-modules wayland-devel wayland-protocols-devel pam-devel polkit-devel polkit-qt6-1-devel kf6-solid-devel systemd-devel libdrm-devel mesa-libgbm-devel libinput-devel xcb-util-cursor-devel libXcursor-devel pulseaudio-libs-devel NetworkManager-libnm-devel ModemManager-glib-devel kf6-networkmanager-qt-devel kf6-modemmanager-qt-devel glib2-devel dconf pipewire-devel pipewire-utils libxkbcommon-devel flatpak-devel appstream-qt-devel gstreamer1-devel libxcvt-devel libdisplay-info-devel | 
| OpenSUSE | sudo zypper install extra-cmake-modules wayland-devel wayland-protocols pam-devel polkit-devel libpolkit-qt6-1-devel solid-devel systemd-devel libdrm-devel libgbm-devel libinput-devel xcb-util-cursor-devel libXcursor-devel pulseaudio-libs-devel libKF6NetworkManagerQt-devel libKF6ModemManagerQt-devel glib-devel dconf gsettings-backend-dconf pipewire-devel pipewire-tools gstreamer-plugin-pipewire libxkbcommon-devel flatpak-devel libAppstreamQt-devel | 
Marginal dependencies (used on unit tests, etc...):
| Distro | Command | 
|---|---|
| Debian | sudo apt-get install -y umockdev-dev | 
| Arch Linux | sudo pacman -Syu umockdev | 
| Fedora | sudo dnf install -y umockdev-devel | 
| OpenSUSE | sudo zypper install umockdev-devel | 
Build
Developers should open CMakeLists.txt with QtCreator and build there, that is way easier.
However if you know bash-fu it's possibile to build from sources.
We assume you have a terminal open in the sources root directory, where there's CMakeLists.txt.
Build:
mkdir .build
cd .build
cmake -DCMAKE_INSTALL_PREFIX=$(pwd)/install-root ..
make
make install