David Cole wrote:

> On Thu, Dec 6, 2012 at 3:37 PM, Stephen Kelly
> <steve...@gmail.com> wrote:
>  
http://thread.gmane.org/gmane.comp.programming.tools.cmake.devel/3615/focus=5111
>>
>> I'm not sure what has changed since then.
>>
> What's changed since then is that we've seen how much change is needed for
> the feature. And how tangled it all is...

That's true. Well, a lot of change and complex, but not tangled.

I haven't tried to analyse how much of the complexity is due to whether 
target_use_targets or target_link_libraries is used. I think the harder 
parts of this topic so far have been related to exports. Like I said though, 
I haven't analysed how much of the exports complexity comes from the use of 
tll().

> This is going to be a venture which risks possibly breaking existing
> projects for the convenience of those who are starting from scratch.
> 
> Since the risk on this one is high, we might want to reconsider whether it
> would be better to use a new command entirely as the front-end for this
> thing.
> 
> I'm not sure I like the name "target_use_targets", but I think a new
> command, whatever it be named, is better than changing
> target_link_libraries substantially in a "." release.

I was going to suggest naming the version that contains this stuff to 2.10. 
I don't know what has motivated similar version bumps in the past though.

> For 3.0, when we finally do go to a CMake 3.0 in the future, we could ask
> the question whether it's safe to combine the two commands, once they've
> both proven to work in practice.

That would only be more source-incompatibility and not a good idea imo.

 2.8.10 : Use target_link_libraries()
 2.8.12 : Use target_use_targets()
 3.0.0 : Use target_link_libraries()

If tll() is not to be used for this when the feature first lands, and 
target_use_targets (or another name) should be used instead, then the thing 
to do in 3.0.0 (or earlier) is to deprecate tll().

Anyway, that's a bit of a sideline. We'd need to find out how much 
complexity is a result of using the existing tll(), and how much source 
incompatibility that risks creating. The only possible source compatibility 
I know of so far is what Brad mentioned, but that might exist anyway:

Brad King wrote:
> Now even projects that have never touched LINK_INTERFACE_LIBRARIES will
> have to be fixed to manually set it to a copy of the link implementation
> in order to remain compatible with older CMake versions once they set the
> policy to NEW.  I'm not currently sure whether this is okay.


Is that right?

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