On 11/1/2013 3:25 PM, Brad King wrote:
> On third thought, the tll documentation for the plain signature
> does not say it populates the INTERFACE_LINK_LIBRARIES property.
[smacks forehead]
On fourth thought I realized this is exactly the problem!
This is a policy, so the NEW behavior can be whatever we
need it to be. There is no reason plain tll can't set the
INTERFACE_LINK_LIBRARIES when the policy is NEW.
Policy CMP0022's NEW behavior is supposed to be that the
link interface is exactly specified by INTERFACE_LINK_LIBRARIES.
Therefore in this case the plain tll signature should go
ahead and populate *both* INTERFACE_LINK_LIBRARIES *and*
LINK_LIBRARIES.
Now we can restore your logic in ComputLinkInterface to not
use the link implementation when CMP0022 is NEW.
I extended the topic to change to this approach, and then
squashed it all back together since the net change is now
pretty simple.
Note that supporting pre-2.8.12 clients is again as simple as
get_property(iface TARGET foo PROPERTY INTERFACE_LINK_LIBRARIES)
set_property(TARGET foo PROPERTY LINK_INTERFACE_LIBRARIES "${iface}")
and using EXPORT_LINK_INTERFACE_LIBRARIES.
-Brad
--
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