Brad King wrote:
> The build of the project itself will not change, and even
> external consumers will behave the same if they are built
> with the same version of CMake.

It's confusing to me that so much of what you wrote is stuff I'm obviously 
already familiar with, having implemented a few policies already. I assume 
you're just trying to be crystal-clear, but for me it's just more confusing.

I understand the intention of policies. I think the misunderstanding we're 
having here is that I don't know what scenario you are trying to point out 
which should be emitting a warning in my INTERFACE_LINK_LIBRARIES-prop 
branch. Or what scenario is emitting a policy warning in my branch although 
it shouldn't.

Snippets of 'problematic' cmake code would be much more helpful than prose 
to understand that.

> I think the case where existing code would produce different
> behavior if the policy were set to NEW without other changes
> is when the project sets the old LINK_INTERFACE_LIBRARIES
> properties directly instead of asking tll() to do it.

I think this is what we've been discussing from the beginning, is it not?

That has been unit tested in my branch for a long time. It emits a warning. 
Maybe you missed it? Or maybe this is more 'reinforcement' and being 
crystal-clear? Or maybe there's a subtlety in what you wrote above that I am 
missing which makes it describe something different from my unit test?

> * WARN (not set): Same as OLD, but tll additionally populates
>   a C++-only copy of what *would* have been put in the newer
>   INTERFACE_LINK_LIBRARIES property.  Then cmTarget computes
>   what *would* have been the new-style link interface and
>   compares it to the actual link interface computed from the
>   OLD behavior.  This comparison will indicate whether the
>   behavior would change and can produce the warning if so.
>   (We could also consider setting INTERFACE_LINK_LIBRARIES
>   instead of using a C++-only copy under the expectation that
>   the project does not know about the property anyway.)

This seems to be the only different suggestion to what is already in my 
branch. Before implementing that though, I would like to know why the change 
is needed and what cmake code is 'problematic' in my branch, but would be 
'fixed' by implementing the above. That way I can add a unit test for it.

> With this approach there shouldn't be any policy warnings
> generated for code that uses only tll().  

As far as I know, this is already the case in my branch.

Please post a snippet of cmake code showing the problems you are seeing so 
that I can easily understand them.

Thanks,

Steve.


--

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