Răsfoiți Sursa

Keep the INCLUDE_DIRECTORIES target property up to date.

The directory level property changes need to be added to it.
Stephen Kelly 14 ani în urmă
părinte
comite
840509babb
2 a modificat fișierele cu 14 adăugiri și 0 ștergeri
  1. 9 0
      Source/cmMakefile.cxx
  2. 5 0
      Source/cmTarget.cxx

+ 9 - 0
Source/cmMakefile.cxx

@@ -1648,6 +1648,15 @@ void cmMakefile::AddIncludeDirectory(const char* inc, bool before)
   cmProperty *prop =
     this->GetProperties().GetOrCreateProperty("INCLUDE_DIRECTORIES");
   AddStringToProperty(prop, "INCLUDE_DIRECTORIES", inc, before);
+
+  // Property on each target:
+  for (cmTargets::iterator l = this->Targets.begin();
+       l != this->Targets.end(); ++l)
+    {
+    cmTarget &t = l->second;
+    prop = t.GetProperties().GetOrCreateProperty("INCLUDE_DIRECTORIES");
+    AddStringToProperty(prop, "INCLUDE_DIRECTORIES", inc, before);
+    }
 }
 
 //----------------------------------------------------------------------------

+ 5 - 0
Source/cmTarget.cxx

@@ -1279,6 +1279,11 @@ void cmTarget::SetMakefile(cmMakefile* mf)
   // Save the backtrace of target construction.
   this->Makefile->GetBacktrace(this->Internal->Backtrace);
 
+  // Initialize the INCLUDE_DIRECTORIES property based on the current value
+  // of the same directory property:
+  this->SetProperty("INCLUDE_DIRECTORIES",
+                    this->Makefile->GetProperty("INCLUDE_DIRECTORIES"));
+
   // Record current policies for later use.
   this->PolicyStatusCMP0003 =
     this->Makefile->GetPolicyStatus(cmPolicies::CMP0003);