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

Alexander Neundorf neundorf at kde.org
Sun Jan 8 12:46:21 EST 2012


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.

Alex



More information about the cmake-developers mailing list