Commit 2f2b5b25 authored by Brad King's avatar Brad King
Browse files

ENH: SetupPathConversions is now called automatically on demand.

parent 9a5a051f
......@@ -597,7 +597,6 @@ std::string cmGlobalUnixMakefileGenerator3
lg->GetMakefile()->MakeStartDirectoriesCurrent();
}
lg->SetupPathConversions();
makeCommand += " \"";
std::string tname = targetName;
if(fast)
......
......@@ -48,6 +48,7 @@ cmLocalGenerator::cmLocalGenerator()
this->Configured = false;
this->EmitUniversalBinaryFlags = true;
this->RelativePathsConfigured = false;
this->PathConversionsSetup = false;
}
cmLocalGenerator::~cmLocalGenerator()
......@@ -80,9 +81,7 @@ void cmLocalGenerator::Configure()
this->Makefile->ConfigureSubDirectory(*sdi);
}
}
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;
......
......@@ -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
......@@ -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;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment