BUG: Fixed generation of XCODE_DEPEND_HELPER.make into proper directory. Cleaned up duplicate code created by recent changes.

This commit is contained in:
Brad King 2007-05-11 13:52:33 -04:00
parent 1c318150a6
commit 6c421971b9
2 changed files with 20 additions and 21 deletions

View File

@ -229,14 +229,7 @@ void cmGlobalXCodeGenerator::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;
this->SetGenerationRoot(root);
// add ALL_BUILD, INSTALL, etc
this->AddExtraTargets(root, it->second);
}
@ -244,19 +237,29 @@ void cmGlobalXCodeGenerator::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;
this->SetGenerationRoot(root);
// now create the project
this->OutputXCodeProject(root, it->second);
}
}
//----------------------------------------------------------------------------
void cmGlobalXCodeGenerator::SetGenerationRoot(cmLocalGenerator* root)
{
this->CurrentProject = root->GetMakefile()->GetProjectName();
this->SetCurrentLocalGenerator(root);
std::string outDir = this->CurrentMakefile->GetHomeOutputDirectory();
outDir =cmSystemTools::CollapseFullPath(outDir.c_str());
cmSystemTools::SplitPath(outDir.c_str(),
this->ProjectOutputDirectoryComponents);
this->CurrentXCodeHackMakefile =
root->GetMakefile()->GetCurrentOutputDirectory();
this->CurrentXCodeHackMakefile += "/CMakeScripts";
cmSystemTools::MakeDirectory(this->CurrentXCodeHackMakefile.c_str());
this->CurrentXCodeHackMakefile += "/XCODE_DEPEND_HELPER.make";
}
//----------------------------------------------------------------------------
void
cmGlobalXCodeGenerator::AddExtraTargets(cmLocalGenerator* root,
@ -273,10 +276,6 @@ cmGlobalXCodeGenerator::AddExtraTargets(cmLocalGenerator* root,
// Add XCODE depend helper
std::string dir = mf->GetCurrentOutputDirectory();
this->CurrentXCodeHackMakefile = dir;
this->CurrentXCodeHackMakefile += "/CMakeScripts";
cmSystemTools::MakeDirectory(this->CurrentXCodeHackMakefile.c_str());
this->CurrentXCodeHackMakefile += "/XCODE_DEPEND_HELPER.make";
cmCustomCommandLine makecommand;
makecommand.push_back("make");
makecommand.push_back("-C");

View File

@ -157,6 +157,7 @@ private:
cmXCodeObject* dependTarget);
void CreateXCodeDependHackTarget(std::vector<cmXCodeObject*>& targets);
bool SpecialTargetEmitted(std::string const& tname);
void SetGenerationRoot(cmLocalGenerator* root);
void AddExtraTargets(cmLocalGenerator* root,
std::vector<cmLocalGenerator*>& gens);
cmXCodeObject* CreateBuildPhase(const char* name,
@ -186,7 +187,6 @@ private:
std::string CurrentReRunCMakeMakefile;
std::string CurrentXCodeHackMakefile;
std::string CurrentProject;
std::string OutputDir;
std::set<cmStdString> TargetDoneSet;
std::vector<std::string> CurrentOutputDirectoryComponents;
std::vector<std::string> ProjectOutputDirectoryComponents;