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? 

(for the libraries, the dependencies are already part of the link 
dependencies variable).

Otherwise you would be doing this:

find_package(Foo)
include_directories(
  ${Foo_INCLUDE_DIRS}
  ${Bar_INCLUDE_DIRS} # Where does this come from ??
)

Thanks,

Steve.


--

Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers

Reply via email to