[Development] qtsystems doesn't compile - mtcore mandatory dependency

Thiago Macieira thiago at kde.org
Tue Nov 1 15:44:33 CET 2011


On Tuesday, 1 de November de 2011 15:06:57 Robin Burchell wrote:
>     !contains(QT_CONFIG, jsondb): {
>         PRIVATE_HEADERS += qscreensaver_linux_p.h
>         SOURCES += qscreensaver_linux.cpp
> 
>         DEFINES += QT_NO_JSONDB
>     } else {
>         PRIVATE_HEADERS += qjsondbwrapper_p.h \
>                            qscreensaver_jsondb_p.h
> 
>         SOURCES += qjsondbwrapper.cpp \
>                    qscreensaver_jsondb.cpp
> 
>         QT += jsondb
>         PKGCONFIG += mtcore
>         LIBS += -L$$[QT_INSTALL_PREFIX]/opt/mt/lib -lmtcore
> -Wl,-rpath,$$[QT_INSTALL_PREFIX]/opt/mt/lib
>     }
> 
> Whoever maintains this, you should probably change that contains()
> conditional to also check packagesExist(mtcore). For an example, see:

I'm not sure that's the proper solution.

Look at the files it's turning off because jsondb was found: the screensaver 
files. I have no clue what a database has to do with screensavers, but I doubt 
my KDE will react to it, so the proper solution is to fix 
qscreensaver_linux.cpp.


And now I've looked at qscreensaver_linux.cpp. First of all, it should be 
called qscreensaver_x11.cpp, since it's an X11 implementation. Second, in 
Qt 5, there's no more Q_WS_X11, so this code will never work. It needs to be 
replaced with a QPA equivalent, getting the name of the QPA plugin loaded at 
runtime (like we discussed) and do the proper thing.

At minimum, this file needs to be qscreensaver_unix.cpp and deal with X11/XCB 
and Wayland, plus the Mac and Windows implementations. Also note a Mac 
implementation (a reference platform) is missing.

I have no clue what the jsondb implementation is for, but it looks extremely 
non-standard to me. If anyone wants it, they should set a flag when compiling 
qtsystems. The default should be to use the QPA solutions.


It seems to me we have two tasks here. The first is a P0, to fix the build. The 
second is a P1, to implement the functionality for the reference platforms. 
I'll create those tasks tomorrow.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
      PGP/GPG: 0x6EF45358; fingerprint:
      E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 190 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.qt-project.org/pipermail/development/attachments/20111101/7fe6f88b/attachment.sig>


More information about the Development mailing list