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;
|
cmLocalUnixMakefileGenerator3* lg = new cmLocalUnixMakefileGenerator3;
|
||||||
lg->SetWindowsShell(false);
|
lg->SetWindowsShell(false);
|
||||||
|
lg->SetMSYSShell(true);
|
||||||
lg->SetGlobalGenerator(this);
|
lg->SetGlobalGenerator(this);
|
||||||
lg->SetIgnoreLibPrefix(true);
|
lg->SetIgnoreLibPrefix(true);
|
||||||
lg->SetPassMakeflags(false);
|
lg->SetPassMakeflags(false);
|
||||||
|
|
|
@ -40,6 +40,7 @@ cmLocalGenerator::cmLocalGenerator()
|
||||||
this->Parent = 0;
|
this->Parent = 0;
|
||||||
this->WindowsShell = false;
|
this->WindowsShell = false;
|
||||||
this->WindowsVSIDE = false;
|
this->WindowsVSIDE = false;
|
||||||
|
this->MSYSShell = false;
|
||||||
this->IgnoreLibPrefix = false;
|
this->IgnoreLibPrefix = false;
|
||||||
this->UseRelativePaths = false;
|
this->UseRelativePaths = false;
|
||||||
this->Configured = false;
|
this->Configured = false;
|
||||||
|
@ -2007,6 +2008,18 @@ std::string cmLocalGenerator::Convert(const char* source,
|
||||||
{
|
{
|
||||||
cmSystemTools::SetForceUnixPaths(true);
|
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;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
|
@ -274,6 +274,7 @@ protected:
|
||||||
bool WindowsShell;
|
bool WindowsShell;
|
||||||
bool WindowsVSIDE;
|
bool WindowsVSIDE;
|
||||||
bool ForceUnixPath;
|
bool ForceUnixPath;
|
||||||
|
bool MSYSShell;
|
||||||
bool UseRelativePaths;
|
bool UseRelativePaths;
|
||||||
bool IgnoreLibPrefix;
|
bool IgnoreLibPrefix;
|
||||||
bool Configured;
|
bool Configured;
|
||||||
|
|
|
@ -107,6 +107,13 @@ public:
|
||||||
*/
|
*/
|
||||||
void SetWindowsShell(bool v) {this->WindowsShell = v;}
|
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.
|
* If set to true, then NULL is set to nil for non Windows_NT.
|
||||||
* This uses make syntax used by nmake and borland.
|
* This uses make syntax used by nmake and borland.
|
||||||
|
|
Loading…
Reference in New Issue