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

Brad King brad.king at kitware.com
Tue Jan 29 13:05:23 EST 2013


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

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.

Thanks,
-Brad



More information about the cmake-developers mailing list