[cmake-developers] INTERFACE_LINK_LIBRARIES property?

Stephen Kelly steveire at gmail.com
Fri Jun 28 08:42:31 EDT 2013


Brad King wrote:

> So, if the first argument after the lhs is "LINK_PUBLIC"
> or "LINK_PRIVATE" then it is the existing signature, and if
> it is "PUBLIC" or "PRIVATE" or "INTERFACE" then it is the
> "new" signature, right?

Right. That's almost what is in my tll-new-signatures branch:

 target_link_libraries(<target> INTERFACE <lib> ...)

 target_link_libraries(<target> <PRIVATE|PUBLIC> <lib> ...
                               [<PRIVATE|PUBLIC> <lib> ...] ...])

However, it should be only:

 target_link_libraries(<target> <PRIVATE|PUBLIC|INTERFACE> <lib> ...
                               [<PRIVATE|PUBLIC|INTERFACE> <lib> ...] ...])

right?

I can change that so that all of the following are valid:

 tll(tgt PRIVATE a PUBLIC b INTERFACE c)
 tll(tgt INTERFACE c PRIVATE a PUBLIC b)
 tll(tgt INTERFACE c PUBLIC b PRIVATE a)
 tll(tgt INTERFACE c PUBLIC b PRIVATE a PUBLIC d INTERFACE e)

I believe 

 tll(tgt LINK_PRIVATE a LINK_PUBLIC b LINK_PRIVATE c)

is valid today. I can't think of a reason to want that, but I guess we 
shouldn't change it.

Thanks,

Steve.





More information about the cmake-developers mailing list