Style fix.
Merge topic 'interface-includes-defines' into next

a3d64fd Style fix.
Add API to extract target names from a genex string.

The TARGET_NAME expression, which requires a literal, provides
target names. $<TARGET_PROPERTY:tgt,prop> also provides target
names in the cases where tgt is a literal, so that TARGET_NAME is
not needed then in addition.
Add API to populate INTERFACE properties in exported targets.

The INTERFACE properties need to be preprocessed for context (build
location or install location) and to extract target names etc.
Make all relevant targets available in the genex context.

The current node being evaluated transitively in the generator
expression must be available to resolve mapped configs.
Use mapped config properties to evaluate $<CONFIG>
Make cycles in target properties ignored, not an error.

Constructs such as these are an error as they are direct self-references:

 set_property(TARGET foo APPEND PROPERTY
   INCLUDE_DIRECTORIES $<TARGET_PROPERTY:foo,INCLUDE_DIRECTORIES>)
 set_property(TARGET foo APPEND PROPERTY
   INCLUDE_DIRECTORIES $<TARGET_PROPERTY:INCLUDE_DIRECTORIES>)

However, this is an indirect self-reference in a cycle, and not an error:

 set_property(TARGET foo APPEND PROPERTY
   INCLUDE_DIRECTORIES $<TARGET_PROPERTY:bar,INCLUDE_DIRECTORIES>)
 set_property(TARGET bar APPEND PROPERTY
   INCLUDE_DIRECTORIES $<TARGET_PROPERTY:foo,INCLUDE_DIRECTORIES>)
Populate the ExportedTargets member early in GenerateMainFile

The member variable is checked to determine whether to call
HandleMissingTarget(). As that could be called during the loop in
the comming commits, ensure that it contains all targets being
exported.
Handle INTERFACE properties transitively for includes and defines.

Contextually, the behavior is as if the properties content from another
target is included in the string and then the result is evaluated.
Merge topic 'interface-includes-defines' into next

894f52f Handle INTERFACE properties transitively for includes and defines.
f5b1980 Populate the ExportedTargets member early in GenerateMainFile
c67b812 Make cycles in target properties ignored, not an error.
d0f950f Use mapped config properties to evaluate $<CONFIG>
26def17 Make all relevant targets available in the genex context.
0c657dc Add API to populate INTERFACE properties in exported targets.
e04f737 Add API to extract target names from a genex string.