Brad King wrote:

> On 06/05/2012 04:59 PM, Stephen Kelly wrote:
>> So far we don't have agreement about how this should look language-wise
>> as far as I can tell. I agree with David that stuffing it into the
>> strings harms readability.
> [snip]
>> generator_expression(myGenExpr)
> [snip]
>> The $<GENERATOR:someName> could similarly be used for defines and other
>> places where we are discussing adding this feature.
> 
> That is an interesting idea to keep in mind for the future but I think
> the implementation of it is too tricky to be in scope now.

That's a little unfortunate. I'm not familiar enough with the existing 
implementation to understand why yet that is so. 

I do see some benefits implementation-wise of your idea below though.

<snip>

>  $<CONFIG:...>    evaluates to 0 or 1 if config matches ...
>  $<LANGUAGE:...>  evaluates to 0 or 1 if language matches ...
>  $<TARGET_PROPERTY_BOOL:WIN32_EXECUTABLE,tgt>  = 0 or 1

Are you sure about this one? Given your further explanation below, and 
assuming the intention is 'link to tgt if *this has a WIN32_EXECUTABLE 
property which is True', it should rather be:

$<$<TARGET_PROPERTY_BOOL:WIN32_EXECUTABLE>:tgt>

? 

Otherwise I have failed to parse it.

<snip>

>  $<$<CONFIG:Debug>:/path/for/Debug>
>  $<$<NOT:$<CONFIG:Debug>>:/path/for/non-Debug>
>  $<$<AND:$<CONFIG:Debug>,$<LANGUAGE:CXX>>:/path/for/Debug/Cxx>

There's a lot of repetition, at least in these examples. If there's a lot 
also in the real world, it might be more maintenance burden than 
convenience. 

The fact that it is also a new language syntax that needs to be learned and 
spread might also make it not-great for adoption/uptake.

> Each individual expression is easy to define, document, and
> implement.  Each has a very strict syntax we can validate as
> part of the implementation and parsing, thus allowing future
> extensions.  They look like existing generator expressions and
> follow a functional style.

And at least if it makes sense in the future (and the parser is strict 
enough) we can implement my idea too.

Thanks,

Steve.


--

Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers

Reply via email to