[cmake-developers] Generator expressisons in target properties

Stephen Kelly steveire at gmail.com
Mon Nov 19 08:36:20 EST 2012


Brad King wrote:

> On 11/18/2012 04:12 PM, Stephen Kelly wrote:
>> This will require that the INCLUDE_DIRECTORIES properties not be handled
>> in the regular way, but as a std::vector<IncludeDirectoryEntry> where:
>> 
>> struct IncludeDirectoryEntry
>> {
>>   cmCompiledGeneratorExpression ge;
>>   bool IsCMP0020Entry;
>> };
>> 
>> On the plus-side this means that we'll get proper backtraces from errors
>> in generator expressions for includes.
> 
> That sounds fine to me.  As long as the CMake-language interface
> remains unchanged the underlying implementation of a property
> does not matter.  Just make sure that when someone sets the value
> of the property to a given string and then gets the value they get
> the *identical* original string back.

Yes, that should be possible, but will require some changes to how compiled 
generator expression pointers are memory managed (more auto_ptr).

Interestingly, this would be far far easier if INCLUDE_DIRECTORIES were not 
generator expression capable, so that is a case which shows why it can be a 
bad idea to integrate a finished feature if not all related features are 
also finished. I'll hopefully be able to finish off all of this stuff for 
the next release anyway though.

Thanks,

Steve.





More information about the cmake-developers mailing list