BUG: Delay relative path configuration until as late as possible to make sure the source/binary dir are set. This is a work-around for lack of a more structured way of creating the global generator.

This commit is contained in:
Brad King 2006-06-19 14:57:57 -04:00
parent a6bf59baef
commit 15ca72a862
2 changed files with 11 additions and 3 deletions

View File

@ -39,6 +39,9 @@ cmGlobalGenerator::cmGlobalGenerator()
// By default do not use link scripts. // By default do not use link scripts.
this->UseLinkScript = false; this->UseLinkScript = false;
// Relative paths are not configured in the constructor.
this->RelativePathsConfigured = false;
} }
cmGlobalGenerator::~cmGlobalGenerator() cmGlobalGenerator::~cmGlobalGenerator()
@ -1098,6 +1101,13 @@ std::string cmGlobalGenerator
return in_remote; return in_remote;
} }
// Make sure relative path conversion is configured.
if(!this->RelativePathsConfigured)
{
this->ConfigureRelativePaths();
this->RelativePathsConfigured = true;
}
std::string original = in_remote; std::string original = in_remote;
// Skip conversion if the path and local are not both in the source or both // Skip conversion if the path and local are not both in the source or both
@ -1224,9 +1234,6 @@ void cmGlobalGenerator::SetCMakeInstance(cmake* cm)
{ {
// Store a pointer to the cmake object instance. // Store a pointer to the cmake object instance.
this->CMakeInstance = cm; this->CMakeInstance = cm;
// Setup relative path conversion for the instance.
this->ConfigureRelativePaths();
} }
void cmGlobalGenerator::SetupTests() void cmGlobalGenerator::SetupTests()

View File

@ -200,6 +200,7 @@ protected:
bool IsExcluded(cmLocalGenerator* root, cmLocalGenerator* gen); bool IsExcluded(cmLocalGenerator* root, cmLocalGenerator* gen);
void ConfigureRelativePaths(); void ConfigureRelativePaths();
bool RelativePathsConfigured;
void SetupTests(); void SetupTests();
void CreateDefaultGlobalTargets(cmTargets* targets); void CreateDefaultGlobalTargets(cmTargets* targets);