Fix: Missing dependencies for kwin autotests

Authored by hgoebel on Oct 2 2017, 2:00 PM.




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.


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:


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.

Diff Detail

R108 KWin
Automatic diff as part of commit; lint not applicable.
Automatic diff as part of commit; unit tests not applicable.
hgoebel created this revision.Oct 2 2017, 2:00 PM
Restricted Application added a project: KWin. · View Herald TranscriptOct 2 2017, 2:00 PM
Restricted Application added subscribers: KWin, kwin. · View Herald Transcript
graesslin accepted this revision.Oct 3 2017, 4:58 PM
graesslin added a subscriber: graesslin.

I assume you don't have commit rights?

This revision is now accepted and ready to land.Oct 3 2017, 4:58 PM

I assume you don't have commit rights?


This revision was automatically updated to reflect the committed changes.