[cmake-developers] Review request: qt4-target-depends

clinton at elemtech.com clinton at elemtech.com
Mon Dec 31 12:42:24 EST 2012



----- Original Message -----
> clinton at elemtech.com wrote:
> 
> > Is the list of dependencies complete?
> 
> I think so. I made the lists of dependencies by using ldd and grepping for
> use of headers of particular modules by particular modules.
> 
> > For example, you list only Script,
> > Gui, Core for QtDeclarative, but objdump -p libQtDeclarative.so gives
> > Script, Svg, Sql, XmlPatterns, Gui, Network and Core. The list you added
> > to enumerate dependencies has a few differences than the one already in
> > UseQt4.cmake.
> 
> Yes. Note that not everything QtDeclarative links to is a public link
> dependency. The comment in the patch gives an example:
> 
> +  # Only public dependencies are listed here.
> +  # Eg, QtDBus links to QtXml, but users of QtDBus do not need to
> +  # link to QtXml because QtDBus only uses it internally, not in public
> +  # headers.
> 
> > How about having one list?
> 
> The QT_<MODULE>_MODULE_DEPENDS variables in UseQt4.cmake have a different
> purpose. They are more like the output of objdump you posted. If using
> QtDeclarative, then Script, Svg, Sql, XmlPatterns, Gui, Network and Core
> must be available on the system. That does not mean that everyone who links
> to QtDeclarative must also link to Script, Svg, Sql, XmlPatterns, Gui,
> Network and Core.
> 
> That is the distinction of 'public' ("If you link to this you have to link
> to that") versus 'private' ("I link to this, but that does not mean you have
> to") link dependencies. Is that distinction clear to you now?
> 
> Thanks,
> 

I'm already aware of the distinction.  Granted, UseQt4.cmake doesn't know if imported targets are being used or not, and probably cannot be reduced to the public dependencies.

But, aren't you still missing the private dependencies so that the -rpath-link flag (for Linux/GNU) can be added to specify the location of the private dependencies?

Maybe we can always use imported targets in FindQt4.cmake, then end up with one place to specify public & private dependencies.

Clint

> 
> > Clint
> > 
> > ----- Original Message -----
> >> 
> >> Hi there (Alex/Clinton),
> >> 
> >> I've added a branch to the stage to list public link depends of Qt
> >> modules. Please review it before I merge it to next.
> >> 
> >> 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
> >> 
> > --
> > 
> > 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
> 
> 
> --
> 
> 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
> 



More information about the cmake-developers mailing list