[cmake-developers] Should a module attempt to find its own dependencies?

Alexander Neundorf neundorf at kde.org
Sun Jan 8 13:29:08 EST 2012


On Sunday 08 January 2012, Stephen Kelly wrote:
> Alexander Neundorf wrote:
> > On Sunday 08 January 2012, Stephen Kelly wrote:
> >> Hi,
> >> 
> >> I don't think I've ever seen a direct answer to this question.
> > 
> > AFAIK, yes, they should.
> > FindKDE4Internal.cmake finds Qt, FindPNG.cmake finds zlib.
> > 
> >> Is it something to be decided on a case by case basis? If so, then why
> >> is there no general case?
> >> 
> >> I can see a possible reason that it is not solvable in the general case
> >> because sometimes the behaviour of find_package can be changed by
> >> setting variables (eg, one might use QT_USE_QTXMLPATTERNS before
> >> finding Qt4).
> >> 
> >> Specifically this comes up for me because I need to know whether Qt5
> >> modules should find their own dependencies. That is, should
> >> 
> >> find_package(Qt5Gui)
> >> 
> >> cause
> >> 
> >> find_package(Qt5Core REQUIRED)
> >> 
> >> to be called or not?
> > 
> > I'd say yes.
> > Otherwise the imported targets in Qt5Gui will depend on not yet defined
> > targets from Qt5Core.
> > 
> > The same way cmake takes care of adding the required additional libraries
> > to the link line (like adding zlib when linking libpng), it should also
> > take care of this, IMO.
> > 
> > You should just have to state
> > find_package(Foo)
> > and this will get you Foo.
> 
> That implies that
> 
> * Qt5Gui_INCLUDE_DIRS should also contain Qt5Core_INCLUDE_DIRS
> 
> * Qt5Gui_DEFINITIONS should contain Qt5Core_DEFINITIONS
> 
> * Qt5Gui_COMPILE_DEFINITIONS should contain Qt5Core_COMPILE_DEFINITIONS
> 
> Right?


Yes, I'd say so.
But let's wait also for some opinions from others.

Alex



More information about the cmake-developers mailing list