ENH: SetupPathConversions is now called automatically on demand.

This commit is contained in:
Brad King 2007-03-08 08:38:40 -05:00
parent 9a5a051f21
commit 2f2b5b2503
4 changed files with 11 additions and 8 deletions

View File

@ -597,7 +597,6 @@ std::string cmGlobalUnixMakefileGenerator3
lg->GetMakefile()->MakeStartDirectoriesCurrent();
}
lg->SetupPathConversions();
makeCommand += " \"";
std::string tname = targetName;
if(fast)

View File

@ -48,6 +48,7 @@ cmLocalGenerator::cmLocalGenerator()
this->Configured = false;
this->EmitUniversalBinaryFlags = true;
this->RelativePathsConfigured = false;
this->PathConversionsSetup = false;
}
cmLocalGenerator::~cmLocalGenerator()
@ -81,8 +82,6 @@ void cmLocalGenerator::Configure()
}
}
this->SetupPathConversions();
// Check whether relative paths should be used for optionally
// relative paths.
this->UseRelativePaths = this->Makefile->IsOn("CMAKE_USE_RELATIVE_PATHS");
@ -2014,6 +2013,13 @@ std::string cmLocalGenerator::Convert(const char* source,
OutputFormat output,
bool optional)
{
// Make sure the relative path conversion components are set.
if(!this->PathConversionsSetup)
{
this->SetupPathConversions();
this->PathConversionsSetup = true;
}
// Convert the path to a relative path.
std::string result = source;

View File

@ -102,9 +102,6 @@ public:
OutputFormat output = UNCHANGED,
bool optional = false);
///! Call this prior to using Convert
void SetupPathConversions();
/**
* Convert the given path to an output path that is optionally
* relative based on the cache option CMAKE_USE_RELATIVE_PATHS. The
@ -279,6 +276,7 @@ protected:
void ConfigureRelativePaths();
std::string FindRelativePathTopSource();
std::string FindRelativePathTopBinary();
void SetupPathConversions();
cmMakefile *Makefile;
cmGlobalGenerator *GlobalGenerator;
@ -314,6 +312,7 @@ protected:
std::string RelativePathTopSource;
std::string RelativePathTopBinary;
bool RelativePathsConfigured;
bool PathConversionsSetup;
};
#endif

View File

@ -1210,7 +1210,6 @@ int cmake::ExecuteCMakeCommand(std::vector<std::string>& args)
lgd->GetMakefile()->SetStartDirectory(startDir.c_str());
lgd->GetMakefile()->SetStartOutputDirectory(startOutDir.c_str());
lgd->GetMakefile()->MakeStartDirectoriesCurrent();
lgd->SetupPathConversions();
// Actually scan dependencies.
return lgd->ScanDependencies(depInfo.c_str())? 0 : 2;