[cmake-developers] Setting includes, defines and other usage requirements with one command

Stephen Kelly steveire at gmail.com
Tue Jan 29 13:11:23 EST 2013


Brad King wrote:

> On 01/29/2013 10:54 AM, Stephen Kelly wrote:
>> Stephen Kelly wrote:
>> 
>>>> if(PACKAGE_FIND_VERSION VERSION_LESS 2.3
>>>> AND NOT MyPkg_INTERFACES)
>>>> set(${PACKAGE_FIND_NAME}_NO_INTERFACES 1)
>>>> endif()
>>>> include("${CMAKE_CURRENT_LIST_DIR}/upstreamTargets.cmake")
>>>
>>> Yes, I'm fine with that too, though it will only affect 'new'
>>> interfaces, not LINK_INTERFACE_LIBRARIES.
>> 
>> I've implemented it in the tll-includes-defines branch in my clone. I've
>> only tested it manually though.
> 
> Yes, that looks good.  Please add tests covering each case:
> 
> - old upstream, new downstream
> - new upstream, old downstream
> - new upstream, new downstream

I'll do that tomorrow.

> Where do you think the _NO_INTERFACES variable documentation
> belongs?  It is not meant to be set directly by downstreams
> but rather in the package configuration files provided by
> upstreams before loading their target files.
> 

I'd say in the find_package documentation. It already documents similar 
things.

Thanks,

Steve.





More information about the cmake-developers mailing list