Install Qt == 5.9.X from https://qt.io (or from the archives).
Install required dependencies (See debian packaging: https://github.com/ubports/ubuntu-ui-toolkit/blob/xenial/debian/control).
If you are using Qt from the archives, run:
sudo apt install \
libdbus-1-dev \
libevdev-dev \
libfontconfig1-dev \
libfreetype6-dev \
libgl1-mesa-dri \
libgles2-mesa-dev \
libglib2.0-dev \
libinput-dev \
liblttng-ust-dev \
libmtdev-dev \
libnih-dbus-dev \
libqt5sql5-sqlite \
libqt5svg5-dev \
libudev-dev \
libx11-dev \
libxcb1-dev \
libxi-dev \
libxkbcommon-dev \
libxrender-dev \
qml-module-qt-labs-settings \
qml-module-qtgraphicaleffects \
qml-module-qtqml-models2 \
qml-module-qtquick-layouts \
qml-module-qtquick-localstorage \
qml-module-qtquick-window2 \
qml-module-qtquick2 \
qml-module-qttest \
qt5-default \
qtbase5-dev \
qtbase5-private-dev \
qtdeclarative5-dev \
qtdeclarative5-dev-tools \
qtdeclarative5-private-dev \
qtdeclarative5-unity-action-plugin \
qttools5-dev-tools \
xvfb
# Note: qtpim5-dev is missing here because the archive version is too old ...
Install Qt modules missing from the installer from source (or the respective packages from the archive):
git clone http://code.qt.io/cgit/qt/qtsystems.git
cd qtsystems
mkdir build && cd build
qmake ..
make
make install
git clone http://code.qt.io/cgit/qt/qtpim.git
cd qtpim
git checkout 0bd985b
mkdir build && cd build
qmake ..
make
make install
git clone http://code.qt.io/cgit/qt/qtfeedback.git/
cd qtfeedback
mkdir build && cd build
qmake ..
make
make install
git clone https://github.com/ubports/ubuntu-ui-toolkit
cd ubuntu-ui-toolkit
# Building in . because when using a shadow build, installing fails with app-launch-tracepoints :(
# Using CONFIG+=warn_off as otherwise g++ will fail with -Werror=suggest-override
qmake . CONFIG+=warn_off CONFIG+=no_docs
make
For some reason, qmlplugindump
which is invoked in order to create plugins.qmltypes
doesn't find all required libraries in $QTDIR/lib
, therefore
we need to patch the wrappers it creates by running:
qt_install_libs_path="$(qmake -query QT_INSTALL_LIBS)";
find . -type f -name "wrapper.sh" -exec sed -i "s~export LD_LIBRARY_PATH.*~export LD_LIBRARY_PATH=$qt_install_libs_path:\$LD_LIBRARY_PATH~g" {} +;
make install
Note: have only tried this with my Qt installation which was created using the qt.io online installer.