Modular building of kde modules

Alexander Neundorf neundorf at kde.org
Wed Mar 18 23:54:47 CET 2009


On Wednesday 18 March 2009, Matthew Woehlke wrote:
> Adding fedora-devel ;-).
>
> Alexander Neundorf wrote:
> > On Tuesday 17 March 2009, Matthew Woehlke wrote:
> >> Somewhat OT, but one thing I would really appreciate is if I could
> >> install kcalc without dragging in the entire bulk of cups due to
> >> printer-applet. (This is partly a Fedora problem, however; IOW, I wish
> >> they'd split kdeutils - and, for that matter, kdepim - into smaller
> >> bites.)
> >
> > Yes, that's a problem of Fedora.
> > I just checked, in kdeutils/ each subdirectory is added using
> > macro_optional_add_subdirectory(),
> > i.e. there is an option which can be used to enable/disable each
> > subdirectory individually, e.g. you can enable BUILD_kcalc and disable
> > all other BUILD_* options and then only kcalc will be included in the
> > build.
>
> Unfortunately, I don't think this helps in this instance. When building
> RPM's, I don't think there is an easy way to do multiple *builds* from a
> single source (which is the solution methodology you are proposing).

Not sure about the way how RPM's are built.
At leats in theory you could just set up multiple build dirs, one for each 
subproject and build there.

Or you could do
$ svn co --non-recursive kdeutils
$ cd kdeutils
$ svn co cmake
$ svn co kcalc
$ ...run cmake and make

This should work for most projects.

> What you can do (and is often done) is split a single build into
> multiple RPM's at the file level. Therefore I'm not sure KDE needs to
> change anything.
>
> > Actually of course it would be even nicer if you could just check out
> > kdeutils/kcalc/ and just build that, but that requires more (although
> > basically boilerplate) work from the developers.
>
> This would be the alternative to the above, but as you say, more work
> for developers. 

Yes, I'm also not sure if this is really what we want.
E.g. for kdepim/kjots/ it is already implemented on request.

> Plus it means you must split *every* subdir into its own
> RPM, which probably isn't ideal.

No, there is no "must".
And some packagers want it that way, every app and every library its own 
package.

Alex



More information about the Kde-buildsystem mailing list