Skip to content

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