소스 검색

GenEx: Create cmGeneratorTargets for imported targets.

We're going to need to link to them, and all the linking API is moving
to cmGeneratorTarget.

Skip imported targets when iterating over cmGeneratorTargets in places
where we only want targets we build.  The GetGeneratorTargets result now
includes IMPORTED targets where it didn't before.  The GetTargets
result, which was what used to be called in these methods does not
include IMPORTED targets.  This doesn't relate to any known bugs, but in
some future uses of GetGeneratorTargets it will be important, so
starting the convention and being deliberate now is a good idea.
Stephen Kelly 13 년 전
부모
커밋
95d590ddba
3개의 변경된 파일18개의 추가작업 그리고 0개의 파일을 삭제
  1. 4 0
      Source/cmExtraEclipseCDT4Generator.cxx
  2. 10 0
      Source/cmGlobalGenerator.cxx
  3. 4 0
      Source/cmLocalGenerator.cxx

+ 4 - 0
Source/cmExtraEclipseCDT4Generator.cxx

@@ -889,6 +889,10 @@ void cmExtraEclipseCDT4Generator::CreateCProjectFile() const
     for (cmGeneratorTargetsType::iterator l = targets.begin();
          l != targets.end(); ++l)
       {
+      if (l->first->IsImported())
+        {
+        continue;
+        }
       std::vector<std::string> includeDirs;
       const char *config = mf->GetDefinition("CMAKE_BUILD_TYPE");
       (*it)->GetIncludeDirectories(includeDirs, l->second, "C", config);

+ 10 - 0
Source/cmGlobalGenerator.cxx

@@ -1108,6 +1108,16 @@ void cmGlobalGenerator::CreateGeneratorTargets()
       this->ComputeTargetObjects(gt);
       generatorTargets[t] = gt;
       }
+
+    for(std::vector<cmTarget*>::const_iterator
+          j = mf->GetOwnedImportedTargets().begin();
+        j != mf->GetOwnedImportedTargets().end(); ++j)
+      {
+      cmGeneratorTarget* gt = new cmGeneratorTarget(*j);
+      this->GeneratorTargets[*j] = gt;
+      generatorTargets[*j] = gt;
+      }
+
     mf->SetGeneratorTargets(generatorTargets);
     }
 }

+ 4 - 0
Source/cmLocalGenerator.cxx

@@ -745,6 +745,10 @@ void cmLocalGenerator
   for(cmGeneratorTargetsType::iterator l = tgts.begin();
       l != tgts.end(); l++)
     {
+    if (l->first->IsImported())
+      {
+      continue;
+      }
     cmGeneratorTarget& target = *l->second;
     switch(target.GetType())
       {