On Tuesday 18 December 2012, Stephen Kelly wrote:
> Alexander Neundorf wrote:
> > On Tuesday 18 December 2012, Stephen Kelly wrote:
> >> Alexander Neundorf wrote:
> >> > This would have the same effect, but people could simply hide the
> >> > USE_INTERFACES keyword in a variable:
> >> > set(Foo_LIBRARIES USE_INTERFACES Foo::FooLib)
> >> > 
> >> > and then it's again hidden:
> >> > target_link_libraries(hello ${JPEG_LIBRARIES} ${Foo_LIBRARIES})
> >> 
> >> I don't see why anyone would do that.
> > 
> > A buildsystem maintainer might decide that he simply wants to provide the
> > normal Foo_LIBRARIES variable to its users, so they can simply continue
> > to use it as they always did, and don't have to care about the new cmake
> > features. I don't say whether that's a good or bad idea, but it's
> > possible and IMO not too far fetched.
> 
> I'd certainly claim it's a bad idea :).
> 
> The upstream buildsystem maintainer has no idea whether Foo should appear
> in the INTERFACE of targets that use it. It's a very bad idea.

I'm talking about a downstream buildsystem maintainer, of some application 
with a handful of known developers.
He might write a FindFoo.cmake or create an ExternalProject for Foo, and he 
might decide that he'll simply create a FOO_LIBRARIES variable, so "his" 
developers don't have to care about imported targets.

But, actually we agree :-)
I just wanted to show that by using a keyword for tll() this is possible (but 
would be a bad idea), and by using a separate command, this is not possible.

Alex
--

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