On 11/28/2012 05:15 PM, Stephen Kelly wrote:
> I guess the old interface is not exported if it is unset, so if the producer 
> stops populating the old interface, they stop exporting it too. The problem 
> is we'd need to provide a way for them to not populate the old interface.

Yes.

> Having them port away from 
> 
>  set_property(TARGET foo PROPERTY LINK_INTERFACE_LIBRARIES_DEBUG bar)
> 
> is obvious, but what is not so obvious is that 
> 
>  target_link_libraries(foo LINK_INTERFACE_LIBRARIES bar)

IMO both of the above are obvious because the name matches.

>  target_link_libraries(foo LINK_PUBLIC bar)
> 
> also populate that property and cause the old interface to be exported. That 
> would be a mystery to someone who doesn't want to export the old interface 
> anymore.
> 
> Maybe we can deprecate those (and introduce a warning on export if the 
> policy is NEW) and introduce 
> 
>  target_link_libraries(foo INTERFACE bar)
>  target_link_libraries(foo PRIVATE bar)
>  target_link_libraries(foo PUBLIC bar)

We _just_ added LINK_PUBLIC/LINK_PRIVATE.  I'd rather not flip
interfaces around too much here.  Perhaps part of the NEW
behavior of CMP0019 can be that LINK_PUBLIC/LINK_PRIVATE do
not populate the old interface.  Anyone that wants to provide
both interfaces can set the policy to NEW and then set the
old interface explicitly.

-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

Reply via email to