ENH: SetupPathConversions is now called automatically on demand.
This commit is contained in:
parent
9a5a051f21
commit
2f2b5b2503
|
@ -597,7 +597,6 @@ std::string cmGlobalUnixMakefileGenerator3
|
||||||
lg->GetMakefile()->MakeStartDirectoriesCurrent();
|
lg->GetMakefile()->MakeStartDirectoriesCurrent();
|
||||||
}
|
}
|
||||||
|
|
||||||
lg->SetupPathConversions();
|
|
||||||
makeCommand += " \"";
|
makeCommand += " \"";
|
||||||
std::string tname = targetName;
|
std::string tname = targetName;
|
||||||
if(fast)
|
if(fast)
|
||||||
|
|
|
@ -48,6 +48,7 @@ cmLocalGenerator::cmLocalGenerator()
|
||||||
this->Configured = false;
|
this->Configured = false;
|
||||||
this->EmitUniversalBinaryFlags = true;
|
this->EmitUniversalBinaryFlags = true;
|
||||||
this->RelativePathsConfigured = false;
|
this->RelativePathsConfigured = false;
|
||||||
|
this->PathConversionsSetup = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
cmLocalGenerator::~cmLocalGenerator()
|
cmLocalGenerator::~cmLocalGenerator()
|
||||||
|
@ -80,9 +81,7 @@ void cmLocalGenerator::Configure()
|
||||||
this->Makefile->ConfigureSubDirectory(*sdi);
|
this->Makefile->ConfigureSubDirectory(*sdi);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this->SetupPathConversions();
|
|
||||||
|
|
||||||
// Check whether relative paths should be used for optionally
|
// Check whether relative paths should be used for optionally
|
||||||
// relative paths.
|
// relative paths.
|
||||||
this->UseRelativePaths = this->Makefile->IsOn("CMAKE_USE_RELATIVE_PATHS");
|
this->UseRelativePaths = this->Makefile->IsOn("CMAKE_USE_RELATIVE_PATHS");
|
||||||
|
@ -2014,6 +2013,13 @@ std::string cmLocalGenerator::Convert(const char* source,
|
||||||
OutputFormat output,
|
OutputFormat output,
|
||||||
bool optional)
|
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.
|
// Convert the path to a relative path.
|
||||||
std::string result = source;
|
std::string result = source;
|
||||||
|
|
||||||
|
|
|
@ -102,9 +102,6 @@ public:
|
||||||
OutputFormat output = UNCHANGED,
|
OutputFormat output = UNCHANGED,
|
||||||
bool optional = false);
|
bool optional = false);
|
||||||
|
|
||||||
///! Call this prior to using Convert
|
|
||||||
void SetupPathConversions();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert the given path to an output path that is optionally
|
* Convert the given path to an output path that is optionally
|
||||||
* relative based on the cache option CMAKE_USE_RELATIVE_PATHS. The
|
* relative based on the cache option CMAKE_USE_RELATIVE_PATHS. The
|
||||||
|
@ -279,6 +276,7 @@ protected:
|
||||||
void ConfigureRelativePaths();
|
void ConfigureRelativePaths();
|
||||||
std::string FindRelativePathTopSource();
|
std::string FindRelativePathTopSource();
|
||||||
std::string FindRelativePathTopBinary();
|
std::string FindRelativePathTopBinary();
|
||||||
|
void SetupPathConversions();
|
||||||
|
|
||||||
cmMakefile *Makefile;
|
cmMakefile *Makefile;
|
||||||
cmGlobalGenerator *GlobalGenerator;
|
cmGlobalGenerator *GlobalGenerator;
|
||||||
|
@ -314,6 +312,7 @@ protected:
|
||||||
std::string RelativePathTopSource;
|
std::string RelativePathTopSource;
|
||||||
std::string RelativePathTopBinary;
|
std::string RelativePathTopBinary;
|
||||||
bool RelativePathsConfigured;
|
bool RelativePathsConfigured;
|
||||||
|
bool PathConversionsSetup;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1210,7 +1210,6 @@ int cmake::ExecuteCMakeCommand(std::vector<std::string>& args)
|
||||||
lgd->GetMakefile()->SetStartDirectory(startDir.c_str());
|
lgd->GetMakefile()->SetStartDirectory(startDir.c_str());
|
||||||
lgd->GetMakefile()->SetStartOutputDirectory(startOutDir.c_str());
|
lgd->GetMakefile()->SetStartOutputDirectory(startOutDir.c_str());
|
||||||
lgd->GetMakefile()->MakeStartDirectoriesCurrent();
|
lgd->GetMakefile()->MakeStartDirectoriesCurrent();
|
||||||
lgd->SetupPathConversions();
|
|
||||||
|
|
||||||
// Actually scan dependencies.
|
// Actually scan dependencies.
|
||||||
return lgd->ScanDependencies(depInfo.c_str())? 0 : 2;
|
return lgd->ScanDependencies(depInfo.c_str())? 0 : 2;
|
||||||
|
|
Loading…
Reference in New Issue