summaryrefslogtreecommitdiffstats
path: root/Source/cmMakefileLibraryTargetGenerator.cxx
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2006-10-13 17:59:59 (GMT)
committerBrad King <brad.king@kitware.com>2006-10-13 17:59:59 (GMT)
commitfb7c7675f5e10865de79dfa050413f53e975831f (patch)
tree615ac034f5122470fadb4b7e92bca7adedf0692e /Source/cmMakefileLibraryTargetGenerator.cxx
parent5330a03994660ed59cf3f4b4cc4c2cf77999a59d (diff)
downloadCMake-fb7c7675f5e10865de79dfa050413f53e975831f.zip
CMake-fb7c7675f5e10865de79dfa050413f53e975831f.tar.gz
CMake-fb7c7675f5e10865de79dfa050413f53e975831f.tar.bz2
BUG: When using link scripts use native shell escapes instead of makefile shell escapes because the script is not interpreted by a make tool.
Diffstat (limited to 'Source/cmMakefileLibraryTargetGenerator.cxx')
-rw-r--r--Source/cmMakefileLibraryTargetGenerator.cxx16
1 files changed, 15 insertions, 1 deletions
diff --git a/Source/cmMakefileLibraryTargetGenerator.cxx b/Source/cmMakefileLibraryTargetGenerator.cxx
index fa65215..dc7d37d 100644
--- a/Source/cmMakefileLibraryTargetGenerator.cxx
+++ b/Source/cmMakefileLibraryTargetGenerator.cxx
@@ -537,7 +537,21 @@ void cmMakefileLibraryTargetGenerator::WriteLibraryRules
objdir += this->Target->GetName();
objdir += ".dir";
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();
vars.LinkLibraries = linkString.c_str();
vars.ObjectsQuoted = buildObjs.c_str();