From 477e4136ef525e16e9d91174bf3bfebf8b0d2650 Mon Sep 17 00:00:00 2001 From: Stephen Kelly Date: Mon, 10 Jun 2013 15:46:51 +0200 Subject: [PATCH] Add missing 'seen' check for evaluating COMPILE_OPTIONS. Commit 089fe1c1 (Optimize genex evaluation for includes and defines., 2013-02-01) introduced an optimization on DAG processing to not reprocess properties on targets which have already been seen. This was refactored slightly in commit 8dfdf1c7 (Fix the tests for evaluating includes and defines., 2013-02-18), but was not extended to cover COMPILE_OPTIONS in commit 80ca9c4b (Add COMPILE_OPTIONS target property., 2013-05-16). This omission causes the same performance regression in running cmake on LLVM which 089fe1c1 fixed before, but this time for the transitive evaluation of the COMPILE_OPTIONS property. --- Source/cmGeneratorExpressionDAGChecker.cxx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Source/cmGeneratorExpressionDAGChecker.cxx b/Source/cmGeneratorExpressionDAGChecker.cxx index e5ffb0cd5..6c6a7d4e0 100644 --- a/Source/cmGeneratorExpressionDAGChecker.cxx +++ b/Source/cmGeneratorExpressionDAGChecker.cxx @@ -34,7 +34,8 @@ cmGeneratorExpressionDAGChecker::cmGeneratorExpressionDAGChecker( this->CheckResult = this->checkGraph(); if (CheckResult == DAG && (top->EvaluatingIncludeDirectories() - || top->EvaluatingCompileDefinitions())) + || top->EvaluatingCompileDefinitions() + || top->EvaluatingCompileOptions())) { std::map >::const_iterator it = top->Seen.find(target);