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:
parent
0b135767d6
commit
019dabc97f
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -274,6 +274,7 @@ protected:
|
|||
bool WindowsShell;
|
||||
bool WindowsVSIDE;
|
||||
bool ForceUnixPath;
|
||||
bool MSYSShell;
|
||||
bool UseRelativePaths;
|
||||
bool IgnoreLibPrefix;
|
||||
bool Configured;
|
||||
|
|
|
@ -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.
|
||||
|
|
Loading…
Reference in New Issue