Optimize target properties processing at generation step
This optimization is a partial answer to performance regression introduced in version 3.13.
The goal is to avoid to create instances of classes
cmCompileGeneratorExpression which are costly (especially
To achieve that, because property values, in file
cmGeneratorTarget.cxx, are managed through class
cmGeneratorTarget::TargetPropertyEntry, two different sub-classes are used to implement common interface defined in the root class: one for generator expression (
TargetPropertyEntryGenex), one for raw strings (
And instances of these sub-classes are created through function
CreateTargetPropertyEntry which select the right class depending of the value of the property: genex or raw string.
Issue: #18965 (closed)