[cmake-developers] INTERFACE_LINK_LIBRARIES property?
Brad King
brad.king at kitware.com
Fri Jun 28 08:49:02 EDT 2013
On 06/28/2013 08:42 AM, Stephen Kelly wrote:
> However, it should be only:
>
> target_link_libraries(<target> <PRIVATE|PUBLIC|INTERFACE> <lib> ...
> [<PRIVATE|PUBLIC|INTERFACE> <lib> ...] ...])
Yes.
> 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)
Yes. I think that will be the simplest to use. Please be
sure that empty library lists in cases like
tll(tgt PRIVATE a PUBLIC INTERFACE c)
work because they could come from
tll(tgt PRIVATE a PUBLIC ${list_of_libs_maybe_empty} INTERFACE c)
> 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
We considered such cases way back when first discussing that interface.
The use case is that there is an ordered implementation dependency on
"a;b;c" but only "b" should be in the link interface.
Thanks,
-Brad
More information about the cmake-developers
mailing list