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