please make it easier to hack on frameworks

Alexander Neundorf neundorf at kde.org
Mon May 13 19:43:56 UTC 2013


On Sunday 12 May 2013, David Faure wrote:
> On Sunday 12 May 2013 17:34:12 Alexander Neundorf wrote:
> > On Sunday 12 May 2013, David Faure wrote:
> > > On Sunday 12 May 2013 11:50:44 Alexander Neundorf wrote:
> > > > : fatal error:
> > > > QX11Info: No such file or directory
> > > 
> > > You didn't compile the Qt module qx11extras?
> > > 
> > > It's part of qt5.git branch dev, which is what the wiki recommends
> > > using.
> > 
> > I think I did:
> > 
> > ~/src/qt5$ git branch
> > * dev
> > ~/src/qt5$
> 
> So, do you have a qtx11extras submodule? Did it get compiled?

it hasn't been rebuilt.
I just followed the instructions in the wiki, hoping they would work 
(http://community.kde.org/Frameworks/Building).
Actually not much has been built (...that's why it was finished so quick):
~/src/qt5/build$ ls -1
Makefile
qtbase/
qtjsbackend/
qtscript/
qtsvg/
qtxmlpatterns/

I did: 
$ git pull
$ git submodule update
$ rm -rf builddir (as recommended by Ossi)
$ mkdir build
$ cd build
$ ../configure -prefix $KF5 -opensource... <as given in the wiki>
$ make
$ make install

So not everything which I hoped would rebuild has been rebuilt.
So this is either a wiki or a Qt buildsystem bug.


Additionally we don't check in cmake that the Qt which has been found is good 
enough.
We make use of the new INTERFACE_INCLUDE_DIRECTORIES target property, but have 
no checks that the Qt which has been found provides those already.

The obvious way would be by requiring some specific minimum version number of 
Qt.
Stephen, is this possible ?


Other options are
1) to check in the CMakeLists.txt that the imported targets have these 
properties set (ugly, lot of code)
2) to check in FindQt5Transitional.cmake that these properties have been set 
(this is not used everywhere)
3) to add wrapper Find-modules which load the Config.cmake files and check for 
the property (also ugly)
4) add a cmake variable like Qt5Core_INCLUDE_DIR_TARGET_PROPERTY_AVAILABLE to 
the installed Config.cmake file, and test this in the CMakeLists.txt 
(basically the same as 1), but less code needed in the CMakeLists.txt:
if(NOT Qt5Core_INCLUDE_DIR_TARGET_PROPERTY_AVAILABLE)
  message(FATAL_ERROR "Qt is too old")
endif()

Stephen, what is your plan regarding this ?

Alex


More information about the Kde-frameworks-devel mailing list