summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorStephen Kelly <steveire@gmail.com>2015-09-25 00:13:20 +0200
committerStephen Kelly <steveire@gmail.com>2015-10-10 11:04:39 +0200
commitbbef3c2da83b7a69d1f99b21dc92d5506d98fb35 (patch)
tree0648ee647358365e2fa3e3957aaa7271f831126c /Source
parent12cb3bdce4b40c39b8697bbf89ea8aace6aeae8b (diff)
downloadcmake-bbef3c2da83b7a69d1f99b21dc92d5506d98fb35.tar.gz
cmLocalGenerator: Add current binary directory accessor.
Diffstat (limited to 'Source')
-rw-r--r--Source/cmDependsFortran.cxx2
-rw-r--r--Source/cmExtraCodeBlocksGenerator.cxx14
-rw-r--r--Source/cmExtraCodeLiteGenerator.cxx12
-rw-r--r--Source/cmExtraEclipseCDT4Generator.cxx7
-rw-r--r--Source/cmExtraKateGenerator.cxx2
-rw-r--r--Source/cmExtraSublimeTextGenerator.cxx3
-rw-r--r--Source/cmGlobalKdevelopGenerator.cxx3
-rw-r--r--Source/cmGlobalUnixMakefileGenerator3.cxx8
-rw-r--r--Source/cmGlobalVisualStudio7Generator.cxx8
-rw-r--r--Source/cmGlobalXCodeGenerator.cxx26
-rw-r--r--Source/cmInstallExportGenerator.cxx2
-rw-r--r--Source/cmLocalGenerator.cxx5
-rw-r--r--Source/cmLocalGenerator.h2
-rw-r--r--Source/cmLocalNinjaGenerator.cxx2
-rw-r--r--Source/cmLocalVisualStudio6Generator.cxx16
-rw-r--r--Source/cmLocalVisualStudio7Generator.cxx16
-rw-r--r--Source/cmMakefileTargetGenerator.cxx15
-rw-r--r--Source/cmVisualStudio10TargetGenerator.cxx14
18 files changed, 80 insertions, 77 deletions
diff --git a/Source/cmDependsFortran.cxx b/Source/cmDependsFortran.cxx
index 856dcd429b..80f560f316 100644
--- a/Source/cmDependsFortran.cxx
+++ b/Source/cmDependsFortran.cxx
@@ -160,7 +160,7 @@ bool cmDependsFortran::Finalize(std::ostream& makeDepends,
if (mod_dir.empty())
{
mod_dir =
- this->LocalGenerator->GetMakefile()->GetCurrentBinaryDirectory();
+ this->LocalGenerator->GetCurrentBinaryDirectory();
}
// Actually write dependencies to the streams.
diff --git a/Source/cmExtraCodeBlocksGenerator.cxx b/Source/cmExtraCodeBlocksGenerator.cxx
index b7ada2ffee..c9d0ce2856 100644
--- a/Source/cmExtraCodeBlocksGenerator.cxx
+++ b/Source/cmExtraCodeBlocksGenerator.cxx
@@ -76,8 +76,7 @@ void cmExtraCodeBlocksGenerator::Generate()
void cmExtraCodeBlocksGenerator::CreateProjectFile(
const std::vector<cmLocalGenerator*>& lgs)
{
- const cmMakefile* mf=lgs[0]->GetMakefile();
- std::string outputDir=mf->GetCurrentBinaryDirectory();
+ std::string outputDir=lgs[0]->GetCurrentBinaryDirectory();
std::string projectName=lgs[0]->GetProjectName();
std::string filename=outputDir+"/";
@@ -331,7 +330,7 @@ void cmExtraCodeBlocksGenerator
{
// Only add the global targets from CMAKE_BINARY_DIR,
// not from the subdirs
- if (strcmp(makefile->GetCurrentBinaryDirectory(),
+ if (strcmp((*lg)->GetCurrentBinaryDirectory(),
(*lg)->GetBinaryDirectory())==0)
{
this->AppendTarget(fout, ti->first, 0,
@@ -524,11 +523,10 @@ std::string cmExtraCodeBlocksGenerator::CreateDummyTargetFile(
cmLocalGenerator* lg,
cmTarget* target) const
{
- cmMakefile *mf = lg->GetMakefile();
// this file doesn't seem to be used by C::B in custom makefile mode,
// but we generate a unique file for each OBJECT library so in case
// C::B uses it in some way, the targets don't interfere with each other.
- std::string filename = mf->GetCurrentBinaryDirectory();
+ std::string filename = lg->GetCurrentBinaryDirectory();
filename += "/";
filename += lg->GetTargetDirectory(*target);
filename += "/";
@@ -555,14 +553,14 @@ void cmExtraCodeBlocksGenerator::AppendTarget(cmGeneratedFileStream& fout,
const char* compiler)
{
cmMakefile const* makefile = lg->GetMakefile();
- std::string makefileName = makefile->GetCurrentBinaryDirectory();
+ std::string makefileName = lg->GetCurrentBinaryDirectory();
makefileName += "/Makefile";
fout<<" <Target title=\"" << targetName << "\">\n";
if (target!=0)
{
int cbTargetType = this->GetCBTargetType(target);
- std::string workingDir = makefile->GetCurrentBinaryDirectory();
+ std::string workingDir = lg->GetCurrentBinaryDirectory();
if ( target->GetType()==cmTarget::EXECUTABLE)
{
// Determine the directory where the executable target is created, and
@@ -659,7 +657,7 @@ void cmExtraCodeBlocksGenerator::AppendTarget(cmGeneratedFileStream& fout,
else // e.g. all and the GLOBAL and UTILITY targets
{
fout<<" <Option working_dir=\""
- << makefile->GetCurrentBinaryDirectory() << "\" />\n"
+ << lg->GetCurrentBinaryDirectory() << "\" />\n"
<<" <Option type=\"" << 4 << "\" />\n";
}
diff --git a/Source/cmExtraCodeLiteGenerator.cxx b/Source/cmExtraCodeLiteGenerator.cxx
index c22b786b69..31dbf3da60 100644
--- a/Source/cmExtraCodeLiteGenerator.cxx
+++ b/Source/cmExtraCodeLiteGenerator.cxx
@@ -68,15 +68,15 @@ void cmExtraCodeLiteGenerator::Generate()
const cmMakefile* mf =it->second[0]->GetMakefile();
this->ConfigName = GetConfigurationName( mf );
- if (strcmp(mf->GetCurrentBinaryDirectory(),
+ if (strcmp(it->second[0]->GetCurrentBinaryDirectory(),
it->second[0]->GetBinaryDirectory()) == 0)
{
- workspaceOutputDir = mf->GetCurrentBinaryDirectory();
+ workspaceOutputDir = it->second[0]->GetCurrentBinaryDirectory();
workspaceProjectName = it->second[0]->GetProjectName();
workspaceSourcePath = it->second[0]->GetSourceDirectory();
workspaceFileName = workspaceOutputDir+"/";
workspaceFileName += workspaceProjectName + ".workspace";
- this->WorkspacePath = mf->GetCurrentBinaryDirectory();;
+ this->WorkspacePath = it->second[0]->GetCurrentBinaryDirectory();;
fout.Open(workspaceFileName.c_str(), false, false);
fout << "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"
@@ -91,8 +91,7 @@ void cmExtraCodeLiteGenerator::Generate()
++it)
{
// retrive project information
- const cmMakefile* mf = it->second[0]->GetMakefile();
- std::string outputDir = mf->GetCurrentBinaryDirectory();
+ std::string outputDir = it->second[0]->GetCurrentBinaryDirectory();
std::string projectName = it->second[0]->GetProjectName();
std::string filename = outputDir + "/" + projectName + ".project";
@@ -121,8 +120,7 @@ void cmExtraCodeLiteGenerator::Generate()
void cmExtraCodeLiteGenerator::CreateProjectFile(
const std::vector<cmLocalGenerator*>& lgs)
{
- const cmMakefile* mf = lgs[0]->GetMakefile();
- std::string outputDir = mf->GetCurrentBinaryDirectory();
+ std::string outputDir = lgs[0]->GetCurrentBinaryDirectory();
std::string projectName = lgs[0]->GetProjectName();
std::string filename = outputDir + "/";
diff --git a/Source/cmExtraEclipseCDT4Generator.cxx b/Source/cmExtraEclipseCDT4Generator.cxx
index 47e25665b3..cca3858706 100644
--- a/Source/cmExtraEclipseCDT4Generator.cxx
+++ b/Source/cmExtraEclipseCDT4Generator.cxx
@@ -208,7 +208,7 @@ void cmExtraEclipseCDT4Generator::AddEnvVar(cmGeneratedFileStream& fout,
std::string cacheEntryName = "CMAKE_ECLIPSE_ENVVAR_";
cacheEntryName += envVar;
- const char* cacheValue = mf->GetState()->GetInitializedCacheValue(
+ const char* cacheValue = lg->GetState()->GetInitializedCacheValue(
cacheEntryName);
// now we have both, decide which one to use
@@ -1036,8 +1036,7 @@ void cmExtraEclipseCDT4Generator::CreateCProjectFile() const
++it)
{
const cmTargets& targets = (*it)->GetMakefile()->GetTargets();
- cmMakefile* makefile=(*it)->GetMakefile();
- std::string subdir = (*it)->Convert(makefile->GetCurrentBinaryDirectory(),
+ std::string subdir = (*it)->Convert((*it)->GetCurrentBinaryDirectory(),
cmLocalGenerator::HOME_OUTPUT);
if (subdir == ".")
{
@@ -1098,7 +1097,7 @@ void cmExtraEclipseCDT4Generator::CreateCProjectFile() const
ti->first.c_str());
std::string cleanArgs = "-E chdir \"";
- cleanArgs += makefile->GetCurrentBinaryDirectory();
+ cleanArgs += (*it)->GetCurrentBinaryDirectory();
cleanArgs += "\" \"";
cleanArgs += cmSystemTools::GetCMakeCommand();
cleanArgs += "\" -P \"";
diff --git a/Source/cmExtraKateGenerator.cxx b/Source/cmExtraKateGenerator.cxx
index f14a1cc48d..fe77026257 100644
--- a/Source/cmExtraKateGenerator.cxx
+++ b/Source/cmExtraKateGenerator.cxx
@@ -121,7 +121,7 @@ cmExtraKateGenerator::WriteTargets(const cmLocalGenerator* lg,
{
const cmTargets& targets = (*it)->GetMakefile()->GetTargets();
cmMakefile* makefile=(*it)->GetMakefile();
- std::string currentDir = makefile->GetCurrentBinaryDirectory();
+ std::string currentDir = (*it)->GetCurrentBinaryDirectory();
bool topLevel = (currentDir == (*it)->GetBinaryDirectory());
for(cmTargets::const_iterator ti=targets.begin(); ti!=targets.end(); ++ti)
diff --git a/Source/cmExtraSublimeTextGenerator.cxx b/Source/cmExtraSublimeTextGenerator.cxx
index 7413a2da9f..6306360317 100644
--- a/Source/cmExtraSublimeTextGenerator.cxx
+++ b/Source/cmExtraSublimeTextGenerator.cxx
@@ -77,8 +77,7 @@ void cmExtraSublimeTextGenerator::Generate()
void cmExtraSublimeTextGenerator::CreateProjectFile(
const std::vector<cmLocalGenerator*>& lgs)
{
- const cmMakefile* mf=lgs[0]->GetMakefile();
- std::string outputDir=mf->GetCurrentBinaryDirectory();
+ std::string outputDir=lgs[0]->GetCurrentBinaryDirectory();
std::string projectName=lgs[0]->GetProjectName();
const std::string filename =
diff --git a/Source/cmGlobalKdevelopGenerator.cxx b/Source/cmGlobalKdevelopGenerator.cxx
index 6284c6d50b..f955ef7289 100644
--- a/Source/cmGlobalKdevelopGenerator.cxx
+++ b/Source/cmGlobalKdevelopGenerator.cxx
@@ -49,8 +49,7 @@ void cmGlobalKdevelopGenerator::Generate()
it!= this->GlobalGenerator->GetProjectMap().end();
++it)
{
- cmMakefile* mf = it->second[0]->GetMakefile();
- std::string outputDir=mf->GetCurrentBinaryDirectory();
+ std::string outputDir=it->second[0]->GetCurrentBinaryDirectory();
std::string projectDir=it->second[0]->GetSourceDirectory();
std::string projectName=it->second[0]->GetProjectName();
std::string cmakeFilePattern("CMakeLists.txt;*.cmake;");
diff --git a/Source/cmGlobalUnixMakefileGenerator3.cxx b/Source/cmGlobalUnixMakefileGenerator3.cxx
index be35e272f2..a8cef0e408 100644
--- a/Source/cmGlobalUnixMakefileGenerator3.cxx
+++ b/Source/cmGlobalUnixMakefileGenerator3.cxx
@@ -163,7 +163,7 @@ void cmGlobalUnixMakefileGenerator3::Generate()
{
cmLocalUnixMakefileGenerator3 *lg =
static_cast<cmLocalUnixMakefileGenerator3 *>(this->LocalGenerators[i]);
- std::string markFileName = lg->GetMakefile()->GetCurrentBinaryDirectory();
+ std::string markFileName = lg->GetCurrentBinaryDirectory();
markFileName += "/";
markFileName += cmake::GetCMakeFilesDirectory();
markFileName += "/progress.marks";
@@ -395,7 +395,7 @@ void cmGlobalUnixMakefileGenerator3::WriteMainCMakefile()
{
lg =
static_cast<cmLocalUnixMakefileGenerator3 *>(this->LocalGenerators[i]);
- tmpStr = lg->GetMakefile()->GetCurrentBinaryDirectory();
+ tmpStr = lg->GetCurrentBinaryDirectory();
tmpStr += cmake::GetCMakeFilesDirectory();
tmpStr += "/CMakeDirectoryInformation.cmake";
cmakefileStream << " \"" <<
@@ -454,7 +454,7 @@ cmGlobalUnixMakefileGenerator3
bool check_relink)
{
// Get the relative path to the subdirectory from the top.
- std::string makeTarget = lg->GetMakefile()->GetCurrentBinaryDirectory();
+ std::string makeTarget = lg->GetCurrentBinaryDirectory();
makeTarget += "/";
makeTarget += pass;
@@ -534,7 +534,7 @@ cmGlobalUnixMakefileGenerator3
}
// Begin the directory-level rules section.
- std::string dir = lg->GetMakefile()->GetCurrentBinaryDirectory();
+ std::string dir = lg->GetCurrentBinaryDirectory();
dir = lg->Convert(dir, cmLocalGenerator::HOME_OUTPUT,
cmLocalGenerator::MAKERULE);
lg->WriteDivider(ruleFileStream);
diff --git a/Source/cmGlobalVisualStudio7Generator.cxx b/Source/cmGlobalVisualStudio7Generator.cxx
index 73a952b0a4..f4166b9065 100644
--- a/Source/cmGlobalVisualStudio7Generator.cxx
+++ b/Source/cmGlobalVisualStudio7Generator.cxx
@@ -363,7 +363,7 @@ void cmGlobalVisualStudio7Generator
return;
}
this->CurrentProject = root->GetProjectName();
- std::string fname = root->GetMakefile()->GetCurrentBinaryDirectory();
+ std::string fname = root->GetCurrentBinaryDirectory();
fname += "/";
fname += root->GetProjectName();
fname += ".sln";
@@ -468,8 +468,10 @@ void cmGlobalVisualStudio7Generator::WriteTargetsToSolution(
target->GetProperty("GENERATOR_FILE_NAME");
if(vcprojName)
{
- cmMakefile* tmf = target->GetMakefile();
- std::string dir = tmf->GetCurrentBinaryDirectory();
+ cmLocalGenerator* lg =
+ root->GetGlobalGenerator()->GetGeneratorTarget(target)
+ ->GetLocalGenerator();
+ std::string dir = lg->GetCurrentBinaryDirectory();
dir = root->Convert(dir.c_str(),
cmLocalGenerator::START_OUTPUT);
if(dir == ".")
diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx
index 146fa39a26..b2d8f4a658 100644
--- a/Source/cmGlobalXCodeGenerator.cxx
+++ b/Source/cmGlobalXCodeGenerator.cxx
@@ -414,11 +414,12 @@ void cmGlobalXCodeGenerator::SetGenerationRoot(cmLocalGenerator* root)
this->SetCurrentLocalGenerator(root);
cmSystemTools::SplitPath(this->CurrentMakefile->GetCurrentSourceDirectory(),
this->ProjectSourceDirectoryComponents);
- cmSystemTools::SplitPath(this->CurrentMakefile->GetCurrentBinaryDirectory(),
- this->ProjectOutputDirectoryComponents);
+ cmSystemTools::SplitPath(
+ this->CurrentLocalGenerator->GetCurrentBinaryDirectory(),
+ this->ProjectOutputDirectoryComponents);
this->CurrentXCodeHackMakefile =
- root->GetMakefile()->GetCurrentBinaryDirectory();
+ root->GetCurrentBinaryDirectory();
this->CurrentXCodeHackMakefile += "/CMakeScripts";
cmSystemTools::MakeDirectory(this->CurrentXCodeHackMakefile.c_str());
this->CurrentXCodeHackMakefile += "/XCODE_DEPEND_HELPER.make";
@@ -466,7 +467,7 @@ cmGlobalXCodeGenerator::AddExtraTargets(cmLocalGenerator* root,
allBuildGt->AddSource(listfile.c_str());
// Add XCODE depend helper
- std::string dir = mf->GetCurrentBinaryDirectory();
+ std::string dir = root->GetCurrentBinaryDirectory();
cmCustomCommandLine makeHelper;
if(this->XcodeVersion < 50)
{
@@ -568,7 +569,6 @@ cmGlobalXCodeGenerator::AddExtraTargets(cmLocalGenerator* root,
void cmGlobalXCodeGenerator::CreateReRunCMakeFile(
cmLocalGenerator* root, std::vector<cmLocalGenerator*> const& gens)
{
- cmMakefile* mf = root->GetMakefile();
std::vector<std::string> lfiles;
for(std::vector<cmLocalGenerator*>::const_iterator gi = gens.begin();
gi != gens.end(); ++gi)
@@ -582,7 +582,7 @@ void cmGlobalXCodeGenerator::CreateReRunCMakeFile(
std::vector<std::string>::iterator new_end =
std::unique(lfiles.begin(), lfiles.end());
lfiles.erase(new_end, lfiles.end());
- this->CurrentReRunCMakeMakefile = mf->GetCurrentBinaryDirectory();
+ this->CurrentReRunCMakeMakefile = root->GetCurrentBinaryDirectory();
this->CurrentReRunCMakeMakefile += "/CMakeScripts";
cmSystemTools::MakeDirectory(this->CurrentReRunCMakeMakefile.c_str());
this->CurrentReRunCMakeMakefile += "/ReRunCMake.make";
@@ -1033,7 +1033,7 @@ void cmGlobalXCodeGenerator::SetCurrentLocalGenerator(cmLocalGenerator* gen)
this->CurrentLocalGenerator = gen;
this->CurrentMakefile = gen->GetMakefile();
std::string outdir =
- cmSystemTools::CollapseFullPath(this->CurrentMakefile->
+ cmSystemTools::CollapseFullPath(this->CurrentLocalGenerator->
GetCurrentBinaryDirectory());
cmSystemTools::SplitPath(outdir.c_str(),
this->CurrentOutputDirectoryComponents);
@@ -1389,7 +1389,7 @@ void cmGlobalXCodeGenerator::ForceLinkerLanguage(cmTarget& cmtarget)
// linker language. This should convince Xcode to choose the proper
// language.
cmMakefile* mf = cmtarget.GetMakefile();
- std::string fname = mf->GetCurrentBinaryDirectory();
+ std::string fname = gtgt->GetLocalGenerator()->GetCurrentBinaryDirectory();
fname += cmake::GetCMakeFilesDirectory();
fname += "/";
fname += cmtarget.GetName();
@@ -1618,7 +1618,7 @@ cmGlobalXCodeGenerator::AddCommandsToBuildPhase(cmXCodeObject* buildphase,
const & commands,
const char* name)
{
- std::string dir = this->CurrentMakefile->GetCurrentBinaryDirectory();
+ std::string dir = this->CurrentLocalGenerator->GetCurrentBinaryDirectory();
dir += "/CMakeScripts";
cmSystemTools::MakeDirectory(dir.c_str());
std::string makefile = dir;
@@ -1639,7 +1639,7 @@ cmGlobalXCodeGenerator::AddCommandsToBuildPhase(cmXCodeObject* buildphase,
currentConfig->c_str());
}
- std::string cdir = this->CurrentMakefile->GetCurrentBinaryDirectory();
+ std::string cdir = this->CurrentLocalGenerator->GetCurrentBinaryDirectory();
cdir = this->ConvertToRelativeForXCode(cdir.c_str());
std::string makecmd = "make -C ";
makecmd += cdir;
@@ -1967,7 +1967,7 @@ void cmGlobalXCodeGenerator::CreateBuildSettings(cmTarget& target,
}
// Set attributes to specify the proper name for the target.
- std::string pndir = this->CurrentMakefile->GetCurrentBinaryDirectory();
+ std::string pndir = this->CurrentLocalGenerator->GetCurrentBinaryDirectory();
if(target.GetType() == cmTarget::STATIC_LIBRARY ||
target.GetType() == cmTarget::SHARED_LIBRARY ||
target.GetType() == cmTarget::MODULE_LIBRARY ||
@@ -3484,7 +3484,7 @@ bool cmGlobalXCodeGenerator
}
}
- std::string symroot = root->GetMakefile()->GetCurrentBinaryDirectory();
+ std::string symroot = root->GetCurrentBinaryDirectory();
symroot += "/build";
buildSettings->AddAttribute("SYMROOT", this->CreateString(symroot.c_str()));
@@ -3727,7 +3727,7 @@ cmGlobalXCodeGenerator::OutputXCodeProject(cmLocalGenerator* root,
{
return;
}
- std::string xcodeDir = root->GetMakefile()->GetCurrentBinaryDirectory();
+ std::string xcodeDir = root->GetCurrentBinaryDirectory();
xcodeDir += "/";
xcodeDir += root->GetProjectName();
xcodeDir += ".xcode";
diff --git a/Source/cmInstallExportGenerator.cxx b/Source/cmInstallExportGenerator.cxx
index 97b940583a..f7c9cc28c8 100644
--- a/Source/cmInstallExportGenerator.cxx
+++ b/Source/cmInstallExportGenerator.cxx
@@ -64,7 +64,7 @@ void cmInstallExportGenerator::ComputeTempDir()
// Choose a temporary directory in which to generate the import
// files to be installed.
this->TempDir =
- this->LocalGenerator->GetMakefile()->GetCurrentBinaryDirectory();
+ this->LocalGenerator->GetCurrentBinaryDirectory();
this->TempDir += cmake::GetCMakeFilesDirectory();
this->TempDir += "/Export";
if(this->Destination.empty())
diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx
index 6c442f4be4..8096bd7192 100644
--- a/Source/cmLocalGenerator.cxx
+++ b/Source/cmLocalGenerator.cxx
@@ -2878,6 +2878,11 @@ const char* cmLocalGenerator::GetBinaryDirectory() const
return this->GetCMakeInstance()->GetHomeOutputDirectory();
}
+const char* cmLocalGenerator::GetCurrentBinaryDirectory() const
+{
+ return this->StateSnapshot.GetDirectory().GetCurrentBinary();
+}
+
//----------------------------------------------------------------------------
std::string
cmLocalGenerator::GetTargetDirectory(cmTarget const&) const
diff --git a/Source/cmLocalGenerator.h b/Source/cmLocalGenerator.h
index 2123f1e685..7ca587e602 100644
--- a/Source/cmLocalGenerator.h
+++ b/Source/cmLocalGenerator.h
@@ -258,6 +258,8 @@ public:
const char* GetSourceDirectory() const;
const char* GetBinaryDirectory() const;
+ const char* GetCurrentBinaryDirectory() const;
+
/**
* Generate a Mac OS X application bundle Info.plist file.
*/
diff --git a/Source/cmLocalNinjaGenerator.cxx b/Source/cmLocalNinjaGenerator.cxx
index b1e1d3fcfd..6319f0e7a7 100644
--- a/Source/cmLocalNinjaGenerator.cxx
+++ b/Source/cmLocalNinjaGenerator.cxx
@@ -363,7 +363,7 @@ void cmLocalNinjaGenerator::AppendCustomCommandLines(
if (ccg.GetNumberOfCommands() > 0) {
std::string wd = ccg.GetWorkingDirectory();
if (wd.empty())
- wd = this->GetMakefile()->GetCurrentBinaryDirectory();
+ wd = this->GetCurrentBinaryDirectory();
std::ostringstream cdCmd;
#ifdef _WIN32
diff --git a/Source/cmLocalVisualStudio6Generator.cxx b/Source/cmLocalVisualStudio6Generator.cxx
index 3f51569b4c..c226b46ad7 100644
--- a/Source/cmLocalVisualStudio6Generator.cxx
+++ b/Source/cmLocalVisualStudio6Generator.cxx
@@ -111,14 +111,14 @@ void cmLocalVisualStudio6Generator::Generate()
void cmLocalVisualStudio6Generator::OutputDSPFile()
{
// If not an in source build, then create the output directory
- if(strcmp(this->Makefile->GetCurrentBinaryDirectory(),
+ if(strcmp(this->GetCurrentBinaryDirectory(),
this->GetSourceDirectory()) != 0)
{
if(!cmSystemTools::MakeDirectory
- (this->Makefile->GetCurrentBinaryDirectory()))
+ (this->GetCurrentBinaryDirectory()))
{
cmSystemTools::Error("Error creating directory ",
- this->Makefile->GetCurrentBinaryDirectory());
+ this->GetCurrentBinaryDirectory());
}
}
@@ -163,7 +163,7 @@ void cmLocalVisualStudio6Generator::OutputDSPFile()
std::string::size_type pos = l->first.rfind('/');
if(pos != std::string::npos)
{
- std::string dir = this->Makefile->GetCurrentBinaryDirectory();
+ std::string dir = this->GetCurrentBinaryDirectory();
dir += "/";
dir += l->first.substr(0, pos);
if(!cmSystemTools::MakeDirectory(dir.c_str()))
@@ -189,7 +189,7 @@ void cmLocalVisualStudio6Generator::CreateSingleDSP(const std::string& lname,
// create the dsp.cmake file
std::string fname;
- fname = this->Makefile->GetCurrentBinaryDirectory();
+ fname = this->GetCurrentBinaryDirectory();
fname += "/";
fname += pname;
fname += ".dsp";
@@ -578,9 +578,9 @@ cmLocalVisualStudio6Generator
const cmCustomCommand& origCommand)
{
// Create a fake output that forces the rule to run.
- char* output = new char[(strlen(this->Makefile->GetCurrentBinaryDirectory())
+ char* output = new char[(strlen(this->GetCurrentBinaryDirectory())
+ target.GetName().size() + 30)];
- sprintf(output,"%s/%s_force_%i", this->Makefile->GetCurrentBinaryDirectory(),
+ sprintf(output,"%s/%s_force_%i", this->GetCurrentBinaryDirectory(),
target.GetName().c_str(), count);
const char* comment = origCommand.GetComment();
if(!comment && origCommand.GetOutputs().empty())
@@ -1964,7 +1964,7 @@ cmLocalVisualStudio6Generator
// files directory for any configuration. This is used to construct
// object file names that do not produce paths that are too long.
std::string dir_max;
- dir_max += this->Makefile->GetCurrentBinaryDirectory();
+ dir_max += this->GetCurrentBinaryDirectory();
dir_max += "/";
dir_max += config_max;
dir_max += "/";
diff --git a/Source/cmLocalVisualStudio7Generator.cxx b/Source/cmLocalVisualStudio7Generator.cxx
index 48a633eb23..a94113a62a 100644
--- a/Source/cmLocalVisualStudio7Generator.cxx
+++ b/Source/cmLocalVisualStudio7Generator.cxx
@@ -140,7 +140,7 @@ void cmLocalVisualStudio7Generator::FixGlobalTargets()
cmCustomCommandLines force_commands;
force_commands.push_back(force_command);
std::string no_main_dependency = "";
- std::string force = this->Makefile->GetCurrentBinaryDirectory();
+ std::string force = this->GetCurrentBinaryDirectory();
force += cmake::GetCMakeFilesDirectory();
force += "/";
force += tgt.GetName();
@@ -164,14 +164,14 @@ void cmLocalVisualStudio7Generator::FixGlobalTargets()
void cmLocalVisualStudio7Generator::WriteProjectFiles()
{
// If not an in source build, then create the output directory
- if(strcmp(this->Makefile->GetCurrentBinaryDirectory(),
+ if(strcmp(this->GetCurrentBinaryDirectory(),
this->GetSourceDirectory()) != 0)
{
if(!cmSystemTools::MakeDirectory
- (this->Makefile->GetCurrentBinaryDirectory()))
+ (this->GetCurrentBinaryDirectory()))
{
cmSystemTools::Error("Error creating directory ",
- this->Makefile->GetCurrentBinaryDirectory());
+ this->GetCurrentBinaryDirectory());
}
}
@@ -200,7 +200,7 @@ void cmLocalVisualStudio7Generator::WriteStampFiles()
{
// Touch a timestamp file used to determine when the project file is
// out of date.
- std::string stampName = this->Makefile->GetCurrentBinaryDirectory();
+ std::string stampName = this->GetCurrentBinaryDirectory();
stampName += cmake::GetCMakeFilesDirectory();
cmSystemTools::MakeDirectory(stampName.c_str());
stampName += "/";
@@ -247,7 +247,7 @@ void cmLocalVisualStudio7Generator
target.SetProperty("GENERATOR_FILE_NAME",lname.c_str());
// create the dsp.cmake file
std::string fname;
- fname = this->Makefile->GetCurrentBinaryDirectory();
+ fname = this->GetCurrentBinaryDirectory();
fname += "/";
fname += lname;
if(this->FortranProject)
@@ -276,7 +276,7 @@ void cmLocalVisualStudio7Generator
//----------------------------------------------------------------------------
cmSourceFile* cmLocalVisualStudio7Generator::CreateVCProjBuildRule()
{
- std::string stampName = this->Makefile->GetCurrentBinaryDirectory();
+ std::string stampName = this->GetCurrentBinaryDirectory();
stampName += "/";
stampName += cmake::GetCMakeFilesDirectoryPostSlash();
stampName += "generate.stamp";
@@ -1723,7 +1723,7 @@ cmLocalVisualStudio7Generator
// files directory for any configuration. This is used to construct
// object file names that do not produce paths that are too long.
std::string dir_max;
- dir_max += this->Makefile->GetCurrentBinaryDirectory();
+ dir_max += this->GetCurrentBinaryDirectory();
dir_max += "/";
dir_max += this->GetTargetDirectory(target);
dir_max += "/";
diff --git a/Source/cmMakefileTargetGenerator.cxx b/Source/cmMakefileTargetGenerator.cxx
index 3d7cc72b48..9c71a10bf4 100644
--- a/Source/cmMakefileTargetGenerator.cxx
+++ b/Source/cmMakefileTargetGenerator.cxx
@@ -419,7 +419,7 @@ void cmMakefileTargetGenerator
this->WriteObjectBuildFile(obj, lang, source, depends);
// The object file should be checked for dependency integrity.
- std::string objFullPath = this->Makefile->GetCurrentBinaryDirectory();
+ std::string objFullPath = this->LocalGenerator->GetCurrentBinaryDirectory();
objFullPath += "/";
objFullPath += obj;
objFullPath =
@@ -642,7 +642,8 @@ cmMakefileTargetGenerator
this->LocalGenerator->ExpandRuleVariables(compileCommand, vars);
std::string workingDirectory =
this->LocalGenerator->Convert(
- this->Makefile->GetCurrentBinaryDirectory(), cmLocalGenerator::FULL);
+ this->LocalGenerator->GetCurrentBinaryDirectory(),
+ cmLocalGenerator::FULL);
compileCommand.replace(compileCommand.find(langFlags),
langFlags.size(), this->GetFlags(lang));
std::string langDefines = std::string("$(") + lang + "_DEFINES)";
@@ -698,7 +699,7 @@ cmMakefileTargetGenerator
// Change the command working directory to the local build tree.
this->LocalGenerator->CreateCDCommand
(compileCommands,
- this->Makefile->GetCurrentBinaryDirectory(),
+ this->LocalGenerator->GetCurrentBinaryDirectory(),
cmLocalGenerator::HOME_OUTPUT);
commands.insert(commands.end(),
compileCommands.begin(), compileCommands.end());
@@ -771,7 +772,7 @@ cmMakefileTargetGenerator
this->LocalGenerator->CreateCDCommand
(preprocessCommands,
- this->Makefile->GetCurrentBinaryDirectory(),
+ this->LocalGenerator->GetCurrentBinaryDirectory(),
cmLocalGenerator::HOME_OUTPUT);
commands.insert(commands.end(),
preprocessCommands.begin(),
@@ -828,7 +829,7 @@ cmMakefileTargetGenerator
this->LocalGenerator->CreateCDCommand
(assemblyCommands,
- this->Makefile->GetCurrentBinaryDirectory(),
+ this->LocalGenerator->GetCurrentBinaryDirectory(),
cmLocalGenerator::HOME_OUTPUT);
commands.insert(commands.end(),
assemblyCommands.begin(),
@@ -929,7 +930,7 @@ void cmMakefileTargetGenerator::WriteTargetCleanRules()
*this->Target);
this->LocalGenerator->CreateCDCommand
(commands,
- this->Makefile->GetCurrentBinaryDirectory(),
+ this->LocalGenerator->GetCurrentBinaryDirectory(),
cmLocalGenerator::HOME_OUTPUT);
// Write the rule.
@@ -1119,7 +1120,7 @@ void cmMakefileTargetGenerator::WriteTargetDependRules()
<< this->Convert(this->LocalGenerator->GetBinaryDirectory(),
cmLocalGenerator::FULL, cmLocalGenerator::SHELL)
<< " "
- << this->Convert(this->Makefile->GetCurrentBinaryDirectory(),
+ << this->Convert(this->LocalGenerator->GetCurrentBinaryDirectory(),
cmLocalGenerator::FULL, cmLocalGenerator::SHELL)
<< " "
<< this->Convert(this->InfoFileNameFull,
diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx
index 2395ce7dba..8cefd7cc0a 100644
--- a/Source/cmVisualStudio10TargetGenerator.cxx
+++ b/Source/cmVisualStudio10TargetGenerator.cxx
@@ -195,7 +195,7 @@ cmVisualStudio10TargetGenerator(cmTarget* target,
this->BuildFileStream = 0;
this->IsMissingFiles = false;
this->DefaultArtifactDir =
- this->Makefile->GetCurrentBinaryDirectory() + std::string("/") +
+ this->LocalGenerator->GetCurrentBinaryDirectory() + std::string("/") +
this->LocalGenerator->GetTargetDirectory(*this->Target);
}
@@ -297,8 +297,7 @@ void cmVisualStudio10TargetGenerator::Generate()
return;
}
}
- cmMakefile* mf = this->Target->GetMakefile();
- std::string path = mf->GetCurrentBinaryDirectory();
+ std::string path = this->LocalGenerator->GetCurrentBinaryDirectory();
path += "/";
path += this->Name;
path += ".vcxproj";
@@ -951,7 +950,7 @@ cmVisualStudio10TargetGenerator::ConvertPath(std::string const& path,
{
return forceRelative
? cmSystemTools::RelativePath(
- this->Makefile->GetCurrentBinaryDirectory(), path.c_str())
+ this->LocalGenerator->GetCurrentBinaryDirectory(), path.c_str())
: path.c_str();
}
@@ -990,7 +989,7 @@ void cmVisualStudio10TargetGenerator::WriteGroups()
this->AddMissingSourceGroups(groupsUsed, sourceGroups);
// Write out group file
- std::string path = this->Makefile->GetCurrentBinaryDirectory();
+ std::string path = this->LocalGenerator->GetCurrentBinaryDirectory();
path += "/";
path += this->Name;
path += ".vcxproj.filters";
@@ -1448,7 +1447,7 @@ void cmVisualStudio10TargetGenerator::WriteSource(
std::string sourceRel = this->ConvertPath(sf->GetFullPath(), true);
size_t const maxLen = 250;
if(sf->GetCustomCommand() ||
- ((strlen(this->Makefile->GetCurrentBinaryDirectory()) + 1 +
+ ((strlen(this->LocalGenerator->GetCurrentBinaryDirectory()) + 1 +
sourceRel.length()) <= maxLen))
{
forceRelative = true;
@@ -3313,7 +3312,8 @@ void cmVisualStudio10TargetGenerator::WriteMissingFilesWP80()
// For WP80, the manifest needs to be in the same folder as the project
// this can cause an overwrite problem if projects aren't organized in
// folders
- std::string manifestFile = this->Makefile->GetCurrentBinaryDirectory() +
+ std::string manifestFile =
+ this->LocalGenerator->GetCurrentBinaryDirectory() +
std::string("/WMAppManifest.xml");
std::string artifactDir =
this->LocalGenerator->GetTargetDirectory(*this->Target);