BUG: When using link scripts use native shell escapes instead of makefile shell escapes because the script is not interpreted by a make tool.
This commit is contained in:
parent
5330a03994
commit
fb7c7675f5
@ -537,7 +537,21 @@ void cmMakefileLibraryTargetGenerator::WriteLibraryRules
|
|||||||
objdir += this->Target->GetName();
|
objdir += this->Target->GetName();
|
||||||
objdir += ".dir";
|
objdir += ".dir";
|
||||||
vars.ObjectDir = objdir.c_str();
|
vars.ObjectDir = objdir.c_str();
|
||||||
vars.Target = targetOutPathReal.c_str();
|
std::string targetLinkScriptPathReal;
|
||||||
|
if(useLinkScript)
|
||||||
|
{
|
||||||
|
// Paths in the link script are interpreted directly by the shell
|
||||||
|
// and not make.
|
||||||
|
targetLinkScriptPathReal =
|
||||||
|
this->Convert(targetFullPathReal.c_str(),
|
||||||
|
cmLocalGenerator::START_OUTPUT,
|
||||||
|
cmLocalGenerator::SHELL);
|
||||||
|
vars.Target = targetLinkScriptPathReal.c_str();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
vars.Target = targetOutPathReal.c_str();
|
||||||
|
}
|
||||||
std::string linkString = linklibs.str();
|
std::string linkString = linklibs.str();
|
||||||
vars.LinkLibraries = linkString.c_str();
|
vars.LinkLibraries = linkString.c_str();
|
||||||
vars.ObjectsQuoted = buildObjs.c_str();
|
vars.ObjectsQuoted = buildObjs.c_str();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user