From https://bugs.kde.org/show_bug.cgi?id=385136
When building kwin autotests for guix[1], building the following autotests fail:
- testScriptedEffectLoader
- testTabBoxClientModel
- testTabBoxHandler
The reasons are missing dependencies in autotests/CMakeLists.txt resp. autotests/tabbox/CMakeLists.txt.
[1] https://www.gnu.org/software/guix/
Detailed description and Analysis
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
guix (like nix) used a separate prefix for each package. Thus the header files for
qtdeclarative are in /gnu/store/…-qtdeclarative-5.9.1/include/qt5/ while the ones for
qtbase are in /gnu/store/…-base-5.9.1/include/qt5/. This means that *each* dependency's include directory must be specified. This is in contrast to a "normal" Unix-system, where all includes end up in /usr/include/qt5 and missing to defined some include-dependencies does often not raise an error.
When building testScriptedEffectLoader this fails with:
/tmp/guix-build-kwin-5.10.4.drv-0/kwin-5.10.4/scripting/workspace_wrapper.h:29:34:
fatal error: QtQml/QQmlListProperty: No such file or directory
This line and the one in front read:
#include <QRect>
#include <QtQml/QQmlListProperty>
The included files exists in /gnu/store/…-qtdeclarative-5.9.1/include/qt5/, but the command line is missing -isystem /gnu/store/…-qtdeclarative-5.9.1/include/qt5/". The reason for this is: Qt5::Qml is not defined as a dependency for testScriptedEffectLoader` in autotests/CMakeLists.txt.
Analogous for testTabBoxClientModel and testTabBoxHandler.