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