Przeglądaj źródła

Fix DAG checker finding cycling dependencies.

Before this patch, the following is reported falsely as a self-reference:

 target_link_libraries(empty2 LINK_PUBLIC empty3)
 target_link_libraries(empty3 LINK_PUBLIC empty2)

 add_custom_target(...
    -DINCLUDES=$<TARGET_PROPERTY:empty2,INTERFACE_INCLUDE_DIRECTORIES>
 )

The reason is that the existing code assumed that all reading of
include directories would be done through cmTarget::GetIncludeDirectories()
and would therefore be initialized with a DagChecker. That is not the case
if reading the property with an 'external' generator expression.
Stephen Kelly 12 lat temu
rodzic
commit
d1a2729b1a
1 zmienionych plików z 1 dodań i 1 usunięć
  1. 1 1
      Source/cmGeneratorExpressionDAGChecker.cxx

+ 1 - 1
Source/cmGeneratorExpressionDAGChecker.cxx

@@ -126,7 +126,7 @@ cmGeneratorExpressionDAGChecker::checkGraph() const
     {
     if (this->Target == parent->Target && this->Property == parent->Property)
       {
-      return parent->Parent ? CYCLIC_REFERENCE : SELF_REFERENCE;
+      return (parent == this->Parent) ? SELF_REFERENCE : CYCLIC_REFERENCE;
       }
     parent = parent->Parent;
     }