[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-devel
Subject:    Re: KF5 with qmake problems
From:       David Faure <faure () kde ! org>
Date:       2015-09-06 9:10:29
Message-ID: 32787468.67ZoYezlcp () asterix
[Download RAW message or body]

On Saturday 25 April 2015 18:38:54 Christian Gagneraud wrote:
> On Fri, 24 Apr 2015 08:48:53 Kevin Funk wrote:
> > On Friday, April 24, 2015 17:24:34 Christian Gagneraud wrote:
> > > Hi there,
> > > 
> > > I've just installed kubuntu-15.04, and I'm trying to run this tutorial
> > > [1]. I'm using stock Qt5, KF5 and Qt Creator.
> > > 
> > > In my .pro file, I have "QT += KXmlGui KI18n KTextWidgets", but qmake
> > > complains with "Project ERROR: Unknown module(s) in QT: I18n", if I
> > > remove KTextWidgets, then qmake is happy (same happens with QT += KParts).
> > > 
> > > Did I missed something or is it a KF5 or KUbuntu bug?
> > 
> > Do you have the development packages for those libraries installed?
> > 
> > I.e. on Ubuntu:
> > - libkf5textwidgets-dev
> > - libkf5i18n-dev
> > - libkf5xmlgui-dev
> > 
> > 
> > For helping you to debug your issue it may help to understand how this all
> > works:
> > 
> > So when you do 'QT += KTextWidgets', qmake needs to find a file called
> > 'qt_KTextWidgets.pri' somewhere within the QTDIR. I.e. on Ubuntu, this
> > should be
> > /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KTextWidgets.pri.
> > 
> > Make sure these files are around, by installing the resp. development
> > packages.
> 
> OK, I'm now having similar problems with KParts (On a KUbuntu 14.10 this 
> time), I've added "QT += KParts", and I get a compilation error: 
> <KParts/MainWindow> not found.
> 
> $ cat /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KParts.pri 
> QT.KParts.VERSION = 5.3.0
> QT.KParts.MAJOR_VERSION = 5
> QT.KParts.MINOR_VERSION = 3
> QT.KParts.PATCH_VERSION = 0
> QT.KParts.name = KF5Parts
> QT.KParts.defines = 
> QT.KParts.includes = /usr/include/KF5/KParts
> QT.KParts.private_includes =
> QT.KParts.libs = /usr/lib/x86_64-linux-gnu
> QT.KParts.depends = KIOWidgets KXmlGui KTextWidgets
> $ ls /usr/include/KF5/KParts/KParts/MainWindow 
> /usr/include/KF5/KParts/KParts/MainWindow
> 
> So everything seems OK, but the gcc command line doesn't contain the -isystem 
> /usr/include/KF5/KParts, strangely enough all include path of KParts 
> dependencies are added to the command line...

This seems to be a bug in Qt.
The code in qtAddModules (qtbase/mkspecs/features/qt_functions.prf )
turns "core gui KParts" into "core gui + all the deps from KParts". But KParts itself is missing.

If I change
    # Topological resolution of modules based on their QT.<module>.depends variable
    $$1 = $$resolve_depends($$1, "QT.")
to
    # Topological resolution of modules based on their QT.<module>.depends variable
    $$1 += $$resolve_depends($$1, "QT.")
the problem is solved (note += instead of =).

Oswald, do you confirm that this is the right fix?

-- 
David Faure, faure@kde.org, http://www.davidfaure.fr
Working on KDE Frameworks 5


>> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic