From 95d590ddbac80780f437252de4522b78f4069f45 Mon Sep 17 00:00:00 2001 From: Stephen Kelly Date: Wed, 10 Oct 2012 00:07:34 +0200 Subject: [PATCH] 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. --- Source/cmExtraEclipseCDT4Generator.cxx | 4 ++++ Source/cmGlobalGenerator.cxx | 10 ++++++++++ Source/cmLocalGenerator.cxx | 4 ++++ 3 files changed, 18 insertions(+) diff --git a/Source/cmExtraEclipseCDT4Generator.cxx b/Source/cmExtraEclipseCDT4Generator.cxx index 689f213de0..96b8a09201 100644 --- a/Source/cmExtraEclipseCDT4Generator.cxx +++ b/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 includeDirs; const char *config = mf->GetDefinition("CMAKE_BUILD_TYPE"); (*it)->GetIncludeDirectories(includeDirs, l->second, "C", config); diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx index 23ec08a2de..b9de4d8aab 100644 --- a/Source/cmGlobalGenerator.cxx +++ b/Source/cmGlobalGenerator.cxx @@ -1108,6 +1108,16 @@ void cmGlobalGenerator::CreateGeneratorTargets() this->ComputeTargetObjects(gt); generatorTargets[t] = gt; } + + for(std::vector::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); } } diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx index 4f4f7252b5..4952a8ce9c 100644 --- a/Source/cmLocalGenerator.cxx +++ b/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()) {