FindKdepimLibs should require Boost

Alexander Neundorf neundorf at kde.org
Tue Aug 5 20:32:16 CEST 2008


On Tuesday 05 August 2008, Allen Winter wrote:
> On Tuesday 05 August 2008 10:12:27 Thiago Macieira wrote:
> > On Tuesday 05 August 2008 15:33:07 Allen Winter wrote:
> > > On Monday 04 August 2008 16:53:19 Andreas Pakulat wrote:
> > > > Hi,
> > > >
> > > > I hope the subject doesn't stir up a flame-war. I'm not questioning
> > > > the dependency. My question is: Shouldn't FindKdepimLibs.cmake be
> > > > requiring Boost? There's currently breakage in the 4.1 branch
> > > > (kdeplasma-addons) because one part of the comic dataengine in there
> > > > uses libsyndication from kdepimlibs. However libsyndication contains
> > > > boost-stuff in its public headers, which means one has to also
> > > > require boost to build the comic dataengine completely.
> > > >
> > > > So shouldn't FindKdepimLibs.cmake have a find_package call for Boost,
> > > > probably requiring it. After all its impossible to use all of
> > > > kdepimlibs without boost. Or we need more logic in
> > > > FindKdepimLibs.cmake setting individual _FOUND variables for the
> > > > individual libs and setting this to no if boost is not found but the
> > > > specific library contains boost stuff in its public headers (like
> > > > libsyndication).
> > >
> > > So if a user is attempting to build kdeplasma-addons from svn
> > > against a distro package of kdepimlibs, and they also didn't
> > > install the boost package ... they will encounter a problem.
> > > gotcha.
> > >
> > > seems that the distro kdepimlibs-devel package should have
> > > a requirement on boost-devel.. but I guess we can't enforce that.
> >
> > That's right.
> >
> > But we can enforce in the CMake scripts. If you want to develop against
> > KDE PIM Libs, you need to have boost installed (whether you use it
> > directly or not), so the requirement should be there.
>
> Right, so we have a couple choices (to summarize the previous postings):
> 1) make FindKdepimLibs.cmake do a find_package(Boost REQUIRED)
More precisely, only use REQUIRED if kdepimlibs is searched using "REQUIRED", 
so something like this:

set(kdepimlibs_boost_required)
if (KdepimLibs_FIND_REQUIRED)
   set(kdepimlibs_boost_required REQUIRED )
endif (KdepimLibs_FIND_REQUIRED)
find_package(Boost  ${kdepimlibs_boost_required})
...
only search rest of kdepimlibs if boost hass been found
...
set KDEPIMLIBS_FOUND, handle FATAL_ERROR, etc.


> 2) find everything that is using a kdepimlib library that also needs Boost
> and put an individual check (optional) there. Apparently libsyndication
> in kdeplasma-addons is the only known case of this... so far.
> (well, except kdepim which requires Boost anyway)

Yes, making it modular is also an option. 
But personally I don't know if we want to do this. It just adds another way to 
build kde stuff and I don't see a real advantage in it.

Alex


More information about the Kde-buildsystem mailing list