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 (>= 5.10)
  • 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 git
Arch Linux sudo pacman -Syu base-devel git
Fedora sudo dnf install -y gcc-c++ git
OpenSUSE sudo zypper install gcc-c++ git-core

Qt and cmake:

Distro Command
Debian sudo apt-get install -y qt5-default qtquickcontrols2-5-dev qml-module-qtwayland-compositor qtwayland5-dev-tools qtwebengine5-dev-tools qtwebengine5-private-dev qtwebengine5-dev qtmultimedia5-dev qtsvg5 qt5-doc qttools5-dev cmake qtchooser
Arch Linux sudo pacman -Syu qt5-quickcontrols2 qt5-wayland qt5-webengine qt5-multimedia qt5-svg qt5-doc qt5-tools cmake
Fedora sudo dnf install -y qt5-qtbase-static qt5-qtbase-private-devel qt5-qtquickcontrols2-devel qt5-qtwayland-devel qt5-qtmultimedia-devel qt5-qtwebengine-devel qt5-qtsvg-devel qt5-qtdoc qt5-qttools-devel cmake qtchooser
OpenSUSE sudo zypper install libqt5-qtquickcontrols2 libqt5-qtquickwayland-devel libqt5-qtwayland-private-headers-devel libqt5-qtwebengine-devel libqt5-qtmultimedia-devel libqt5-qtsvg-devel libqt5-qtdoc-devel libqt5-qttools-devel cmake

Other dependencies:

Distro Command
Debian sudo apt-get install -y libwayland-dev wayland-protocols libpam0g-dev libpolkit-qt5-1-dev libpolkit-gobject-1-dev libkf5solid-dev libsystemd-dev libdrm-dev libgbm-dev libinput-dev libxcb-cursor-dev libxcursor-dev libpulse-dev libkf5networkmanagerqt-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 wayland pam polkit-qt5 solid libdrm libinput xcb-util-cursor pulseaudio networkmanager-qt modemmanager-qt glib2 dconf pipewire libxkbcommon flatpak appstream-qt
Fedora sudo dnf install -y wayland-devel wayland-protocols-devel pam-devel polkit-devel polkit-qt5-1-devel kf5-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 kf5-networkmanager-qt-devel kf5-modemmanager-qt-devel glib2-devel dconf pipewire-devel pipewire-utils libxkbcommon-devel flatpak-devel appstream-qt-devel
OpenSUSE sudo zypper install wayland-devel wayland-protocols pam-devel polkit-devel libpolkit-qt5-1-devel solid-devel systemd-devel libdrm-devel libgbm-devel libinput-devel xcb-util-cursor-devel libXcursor-devel pulseaudio-libs-devel libKF5NetworkManagerQt-devel libKF5ModemManagerQt-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