瀏覽代碼

ENH: fix for move of trace depends

Bill Hoffman 18 年之前
父節點
當前提交
3e3413dadc
共有 1 個文件被更改,包括 15 次插入1 次删除
  1. 15 1
      Source/cmGlobalXCodeGenerator.cxx

+ 15 - 1
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);
     }