[cmake-developers] INTERFACE_LINK_LIBRARIES property?
Stephen Kelly
steveire at gmail.com
Thu Jun 27 05:28:50 EDT 2013
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.
More information about the cmake-developers
mailing list