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) for(it = this->ProjectMap.begin(); it!= this->ProjectMap.end(); ++it)
{ {
cmLocalGenerator* root = it->second[0]; cmLocalGenerator* root = it->second[0];
this->CurrentProject = root->GetMakefile()->GetProjectName(); this->SetGenerationRoot(root);
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;
// add ALL_BUILD, INSTALL, etc // add ALL_BUILD, INSTALL, etc
this->AddExtraTargets(root, it->second); this->AddExtraTargets(root, it->second);
} }
@ -244,19 +237,29 @@ void cmGlobalXCodeGenerator::Generate()
for(it = this->ProjectMap.begin(); it!= this->ProjectMap.end(); ++it) for(it = this->ProjectMap.begin(); it!= this->ProjectMap.end(); ++it)
{ {
cmLocalGenerator* root = it->second[0]; cmLocalGenerator* root = it->second[0];
this->CurrentProject = root->GetMakefile()->GetProjectName(); this->SetGenerationRoot(root);
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 // now create the project
this->OutputXCodeProject(root, it->second); 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 void
cmGlobalXCodeGenerator::AddExtraTargets(cmLocalGenerator* root, cmGlobalXCodeGenerator::AddExtraTargets(cmLocalGenerator* root,
@ -273,10 +276,6 @@ cmGlobalXCodeGenerator::AddExtraTargets(cmLocalGenerator* root,
// Add XCODE depend helper // Add XCODE depend helper
std::string dir = mf->GetCurrentOutputDirectory(); 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; cmCustomCommandLine makecommand;
makecommand.push_back("make"); makecommand.push_back("make");
makecommand.push_back("-C"); makecommand.push_back("-C");

View File

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