https://bugs.kde.org/show_bug.cgi?id=385136

            Bug ID: 385136
           Summary: Missing dependencies for autotests
           Product: kwin
           Version: 5.10.4
          Platform: unspecified
                OS: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: NOR
         Component: core
          Assignee: kwin-bugs-n...@kde.org
          Reporter: h.goe...@crazy-compilers.com
  Target Milestone: ---

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/

Proposed solution
~~~~~~~~~~~~~~~~~~~~

1) In autotests/CMakeLists.txt:
   - add "Qt5::Qml" to target_link_libraries(testScriptedEffectLoader
2) In autotests/tabbox/CMakeLists.txt:
   - add "Qt5::Script" to target_link_libraries(testTabBoxClientModel
   - add "Qt5::Script" to target_link_libraries(testTabBoxHandler

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.

How to reproduce
~~~~~~~~~~~~~~~~~~~~~

The easiest way would be to test this in guix, but I'm just working on
packaging Plasma for guix and am not finished. I'll update this ticket when
finished.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to