[cmake-developers] Setting include directories via target_link_libraries() ?

Stephen Kelly steveire at gmail.com
Tue Dec 18 11:39:58 EST 2012


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.

It's not important though. That's not going to be the solution.

Thanks,

Steve.






More information about the cmake-developers mailing list