[cmake-developers] conditionals in generator expressions

Brad King brad.king at kitware.com
Wed Aug 29 09:25:45 EDT 2012


On 08/27/2012 05:38 AM, Stephen Kelly wrote:
> Yes, I can see how the language could be able to offer both. However, I do 
> think that the built-in 'this' target should be the one that the generator 
> expression is evaluated on.

Okay.  I'd just like to reserve room in the syntax to allow the target
to be specified explicitly in $<TARGET_PROPERTY:...>.  Ideas?

>> For STATIC libraries there is no LINK_INTERFACE_LIBRARIES.  The
>> the libraries given to target_link_libraries *are* the link interface.
> 
> Does this STATIC case change the above logic in some way?

No, but the link interface comes from the main tll() calls and not from
an explicit LINK_INTERFACE_LIBRARIES property.

> The STREQUAL expression also makes the CONFIG expression redundant and 
> equivalent to $<STREQUAL:$<CONFIGURATION>,...>. I can see reason to keep 
> CONFIG anyway because it is more convenient and is expected to be commonly 
> used I think. 

The config name is case-insensitive so it is not a plain STREQUAL.

> I've pushed a generator-expression-refactor branch to my clone. It needs 
> some clean-up, de-duplication etc, but I'm looking for feedback on the 
> approach.
> 
> In my branch, all parameters must be separated by ','. All commas and colons 
> must appear literally in the expression. This makes escaping not-needed, and 
> multiple-parameter-separators consistent accross all generators.

Great.  I'll take a look when I get a chance.

Thanks,
-Brad



More information about the cmake-developers mailing list