[cmake-developers] Interface includes and defines plumbing

Brad King brad.king at kitware.com
Thu Jan 3 16:03:49 EST 2013


On 01/03/2013 03:32 PM, Stephen Kelly wrote:
> While the porcelain API for setting includes and defines is somewhat 
> controversial, the plumbing is not, as far as I can tell. I previously wrote 
> that I'd like to get all of the INTERFACE_* related commits in together, but 
> I don't think that matters so much really. I'd prefer to get in the base 
> features that I can when they're ready, instead of needing to wait for  
> 'reverse-depends' to also be ready.

I was just in the middle of drafting a message in the
"New INTERFACE_LINK_LIBRARIES policy approach" thread that proposed the same
incremental approach, so I'll rework the text into this message instead.
The whole-shebang topic is too big for anyone to understand.  The plumbing
pieces should be complete and useful changes on their own and added
incrementally.

This is actually why I started a new thread for INTERFACE_LINK_LIBRARIES.
It is a key piece of infrastructure that can be added on its own along with
the policy it requires.

> I'd like to focus first on the on those commits and get them ready for 
> review. They are in the interface-includes-defines branch in my clone. 

Here are some comments:

* Please add a test for the TARGET_NAME non-literal error cases, both in
  direct use of the expression and in export generation.

* In the "Use mapped config properties to evaluate $<CONFIG>" you add code
  to handle MAP_IMPORTED_CONFIG.  I think that should be an API on cmTarget
  refactored from its existing imported config selection code.

Otherwise the topic looks good.

> After that I'll split out the commits for the LINK_LIBRARIES property, the 
> link-dependent interface properties like INTERFACE_PIC, and then the 
> INTERFACE_LIBRARY type. After that I'd like to get back to the rest.

Okay.  The INTERFACE_LINK_LIBRARIES policy approach will have to be
chosen soon.  I'll respond to your points over in that thread.

> I was wondering when the release-candidate period will start for 2.8.11? Or 
> will there be a release-candidate period at all anymore? Is the 2.8.11 
> release scheduled?

There will be a RC period but we haven't scheduled it yet.

-Brad



More information about the cmake-developers mailing list