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

Rohan McGovern rohan.mcgovern at nokia.com
Wed Nov 2 01:03:12 CET 2011


Robin Burchell said:
> 2011/11/1 Thiago Macieira <thiago at kde.org>:
> > I cannot find this mandatory dependency. If it's open, can someone share the
> > link to where it can be found? If it's not open, please disable this
> > functionality.
> 
> I guess this might be a consequence of qtjsondb becoming available:
> 
>     !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).

Incidentally it's rather dangerous to do this kind of

  contains(QT_CONFIG,some_module):QT+=some_module

...behavior nowadays.  In Qt4, QT_CONFIG would be decided at configure
time, but in Qt5 it can be changed when you qmake additional modules.

In other words, if you test contains(QT_CONFIG,some_module) in your Qt5
module, you've made your build behavior implicitly depend on the order in
which the user happened to run `qmake' over the qt5 modules, which is
largely undefined.  e.g. if you are doing a `make -j20' in qt5.git, the
qmakes are also parallelized, and your result might flipflop between
builds.



More information about the Development mailing list