[cmake-developers] exports and MAP_IMPORTED_CONFIG_<CONFIG>

Brad King brad.king at kitware.com
Thu Dec 13 11:16:06 EST 2012


On 12/13/2012 11:02 AM, Stephen Kelly wrote:
> Brad King wrote:
>> The mapping comes from the MAP_IMPORTED_CONFIG_ on the target from which
>> the property value containing the current generator expression was read.
> 
> That's what I thought, but that property is not currently exported, right? 

It is set by the consuming project directly on the imported targets.
In cmTarget::ComputeImportInfo we select for each consuming project
configuration a configuration from the exporting project, either
through the explicit MAP_ property or by heuristics.  Either way
the selected mapping must be used as the configuration whenever we
evaluate an expression that came from the target.

>  include(FooTargets.cmake)
>  set_property(TARGET Foo::foo 
>     PROPERTY MAP_IMPORTED_CONFIG_COVERAGE Release
>  )

Yes, this one.

> I'm not certain what you mean by the 'entire' expression? If you mean the 
> whole string that gets passed to cmGeneratorExpression::Parse, the config is 
> already 'bound' for the entire evaluation of the expression (in 
> cmCompiledGeneratorExpression::Evaluate). So, I'm not certain what you mean 
> here.

I was trying to suggest a possible way to implement the configuration
mapping during evaluation.  I think it will be easier to explain in
more detail when we get to that point of the implementation.

-Brad



More information about the cmake-developers mailing list