summaryrefslogtreecommitdiffstats
path: root/Source/cmGlobalXCodeGenerator.cxx
diff options
context:
space:
mode:
authorBill Hoffman <bill.hoffman@kitware.com>2007-05-10 14:05:36 (GMT)
committerBill Hoffman <bill.hoffman@kitware.com>2007-05-10 14:05:36 (GMT)
commit3e3413dadc3986d2f35cf6a8233125225bee2455 (patch)
treeb967e206d4378f12d8b8fa3fa99969d2f46ff456 /Source/cmGlobalXCodeGenerator.cxx
parentd4193542509722b169d33ddd5a8d081522bd789c (diff)
downloadCMake-3e3413dadc3986d2f35cf6a8233125225bee2455.zip
CMake-3e3413dadc3986d2f35cf6a8233125225bee2455.tar.gz
CMake-3e3413dadc3986d2f35cf6a8233125225bee2455.tar.bz2
ENH: fix for move of trace depends
Diffstat (limited to 'Source/cmGlobalXCodeGenerator.cxx')
-rw-r--r--Source/cmGlobalXCodeGenerator.cxx16
1 files changed, 15 insertions, 1 deletions
diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx
index d7069c2..a019100 100644
--- a/Source/cmGlobalXCodeGenerator.cxx
+++ b/Source/cmGlobalXCodeGenerator.cxx
@@ -223,8 +223,9 @@ cmLocalGenerator *cmGlobalXCodeGenerator::CreateLocalGenerator()
//----------------------------------------------------------------------------
void cmGlobalXCodeGenerator::Generate()
{
- this->cmGlobalGenerator::Generate();
std::map<cmStdString, std::vector<cmLocalGenerator*> >::iterator it;
+ // make sure extra targets are added before calling
+ // the parent generate which will call trace depends
for(it = this->ProjectMap.begin(); it!= this->ProjectMap.end(); ++it)
{
cmLocalGenerator* root = it->second[0];
@@ -238,6 +239,19 @@ void cmGlobalXCodeGenerator::Generate()
this->CurrentLocalGenerator = root;
// add ALL_BUILD, INSTALL, etc
this->AddExtraTargets(root, it->second);
+ }
+ this->cmGlobalGenerator::Generate();
+ for(it = this->ProjectMap.begin(); it!= this->ProjectMap.end(); ++it)
+ {
+ cmLocalGenerator* root = it->second[0];
+ this->CurrentProject = root->GetMakefile()->GetProjectName();
+ this->SetCurrentLocalGenerator(root);
+ this->OutputDir = this->CurrentMakefile->GetHomeOutputDirectory();
+ this->OutputDir =
+ cmSystemTools::CollapseFullPath(this->OutputDir.c_str());
+ cmSystemTools::SplitPath(this->OutputDir.c_str(),
+ this->ProjectOutputDirectoryComponents);
+ this->CurrentLocalGenerator = root;
// now create the project
this->OutputXCodeProject(root, it->second);
}