GenEx: Limit TARGET_PROPERTY transitive closure optimization to subgraphs

Fixes: #25728
This commit is contained in:
Michael Herwig
2024-05-31 18:15:55 +02:00
parent 9673f61be1
commit 4a11772618
8 changed files with 78 additions and 8 deletions
+12
View File
@@ -918,11 +918,23 @@ public:
const std::string& report,
const std::string& compatibilityType) const;
/** Configures TransitiveClosureOptimization. Re-evaluation of a
transitive property will only be optimized within a subgraph. */
enum class TransitiveClosure
{
Inherit, // node is in the same subgraph as its' parent
Subgraph, // the current node spans a new subgraph
};
class TargetPropertyEntry;
std::string EvaluateInterfaceProperty(
std::string const& prop, cmGeneratorExpressionContext* context,
cmGeneratorExpressionDAGChecker* dagCheckerParent, UseTo usage) const;
std::string EvaluateInterfaceProperty(
std::string const& prop, cmGeneratorExpressionContext* context,
cmGeneratorExpressionDAGChecker* dagCheckerParent, UseTo usage,
TransitiveClosure closure) const;
struct TransitiveProperty
{