Superbuild in kdelibs

Aurélien Gâteau agateau at kde.org
Wed Nov 27 18:25:56 UTC 2013


Le mercredi 27 novembre 2013 10:16:57 Ben Cooksley a écrit :
> Hi,
> 
> > I just disabled it, so that you can give it a try. Can you modify kdelibs
> > job
> > definition so that cmake is called with -DSUPERBUILD=ON and "make sb_all"
> > is
> > called first, then "make"?
> 
> That has now been done in 6a67a97e79f1c0251bf0038e8ecd46dbe59cae72 to
> sysadmin/build-kde-org.
> Unfortunately the build failed.

So I spent my day on that failure and build.kde.org is still red. The failure 
is caused by meinproc5 not finding the kdex.dtd file. It should be fixed by 
defining the XDG_DATA_DIRS variable to "$CMAKE_INSTALL_PREFIX/share/" or 
whatever dir where meinproc can find "ksgmltools2/customization/dtd/kdex.dtd", 
installed by kdoctools (Ben, can you look into this?)

In the process of debugging that, I butchered the superbuild script and fixed 
some dependency issues. sb_* targets now only depend on the target declared 
before them, so if you have:

	sb_add_project(foo)
	sb_add_project(bar)
	sb_add_project(baz)
   sb_end() # Declares the sb_all target

Then sb_all depends on sb_baz, which depends on sb_bar, which depends on 
sb_foo.

This ensures frameworks are built in the correct order and helps keeping the 
build output readable, since only one framework can be built at a time, 
regardless of the value of the "-j" argument (but said the build of the 
framework itself is still parallel). It also means it is no longer necessary 
to declare framework dependencies there, which is good because people kept 
forgetting half of them.

It also means building sb_baz will cause a build sb_foo of sb_bar first, 
regardless of whether they depend on each others. If you want to check if a 
framework builds standalone without building all the frameworks listed before 
it, go to $BUILDDIR/superbuild/$framework and run make from there.

Aurélien


More information about the Kde-frameworks-devel mailing list