BUG: MSYS makefile shell needs posix paths to executables in some cases and it does not hurt to do it always.

This commit is contained in:
Brad King 2006-09-28 10:37:19 -04:00
parent 0b135767d6
commit 019dabc97f
4 changed files with 22 additions and 0 deletions

View File

@ -88,6 +88,7 @@ cmLocalGenerator *cmGlobalMSYSMakefileGenerator::CreateLocalGenerator()
{
cmLocalUnixMakefileGenerator3* lg = new cmLocalUnixMakefileGenerator3;
lg->SetWindowsShell(false);
lg->SetMSYSShell(true);
lg->SetGlobalGenerator(this);
lg->SetIgnoreLibPrefix(true);
lg->SetPassMakeflags(false);

View File

@ -40,6 +40,7 @@ cmLocalGenerator::cmLocalGenerator()
this->Parent = 0;
this->WindowsShell = false;
this->WindowsVSIDE = false;
this->MSYSShell = false;
this->IgnoreLibPrefix = false;
this->UseRelativePaths = false;
this->Configured = false;
@ -2007,6 +2008,18 @@ std::string cmLocalGenerator::Convert(const char* source,
{
cmSystemTools::SetForceUnixPaths(true);
}
// For the MSYS shell convert drive letters to posix paths, so
// that c:/some/path becomes /c/some/path. This is needed to
// avoid problems with the shell path translation.
if(this->MSYSShell)
{
if(result.size() > 2 && result[1] == ':')
{
result[1] = result[0];
result[0] = '/';
}
}
}
return result;
}

View File

@ -274,6 +274,7 @@ protected:
bool WindowsShell;
bool WindowsVSIDE;
bool ForceUnixPath;
bool MSYSShell;
bool UseRelativePaths;
bool IgnoreLibPrefix;
bool Configured;

View File

@ -107,6 +107,13 @@ public:
*/
void SetWindowsShell(bool v) {this->WindowsShell = v;}
/**
* Set to true if the shell being used is the MSYS shell.
* This controls if statements in the makefile and the SHELL variable.
* The default is false.
*/
void SetMSYSShell(bool v) {this->MSYSShell = v;}
/**
* If set to true, then NULL is set to nil for non Windows_NT.
* This uses make syntax used by nmake and borland.