summaryrefslogtreecommitdiffstats
path: root/Source/cmMakefileTargetGenerator.cxx
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2010-06-15 17:58:58 (GMT)
committerBrad King <brad.king@kitware.com>2010-06-15 17:58:58 (GMT)
commitd9b2da139dc4ca145551861c3b2369c5d1bda980 (patch)
tree8bef5d85d5efa4c344b7ebbbdf8d69991f6d4e52 /Source/cmMakefileTargetGenerator.cxx
parentd714b18ac5f415e15c5e03bf8f6aaeaf45e143f5 (diff)
parent00477de1c92d94e78cebdaf6c29ff2847207f454 (diff)
downloadCMake-d9b2da139dc4ca145551861c3b2369c5d1bda980.zip
CMake-d9b2da139dc4ca145551861c3b2369c5d1bda980.tar.gz
CMake-d9b2da139dc4ca145551861c3b2369c5d1bda980.tar.bz2
Merge branch 'mingw-response-files'
Diffstat (limited to 'Source/cmMakefileTargetGenerator.cxx')
-rw-r--r--Source/cmMakefileTargetGenerator.cxx15
1 files changed, 13 insertions, 2 deletions
diff --git a/Source/cmMakefileTargetGenerator.cxx b/Source/cmMakefileTargetGenerator.cxx
index ac727ac..4c4dbc1 100644
--- a/Source/cmMakefileTargetGenerator.cxx
+++ b/Source/cmMakefileTargetGenerator.cxx
@@ -1327,7 +1327,7 @@ public:
this->NextObject =
this->LocalGenerator->Convert(obj.c_str(),
cmLocalGenerator::START_OUTPUT,
- cmLocalGenerator::SHELL);
+ cmLocalGenerator::RESPONSE);
// Roll over to next string if the limit will be exceeded.
if(this->LengthLimit != std::string::npos &&
@@ -1621,6 +1621,17 @@ cmMakefileTargetGenerator
std::vector<std::string> object_strings;
this->WriteObjectsStrings(object_strings, responseFileLimit);
+ // Lookup the response file reference flag.
+ std::string responseFlagVar = "CMAKE_";
+ responseFlagVar += this->Target->GetLinkerLanguage(this->ConfigName);
+ responseFlagVar += "_RESPONSE_FILE_LINK_FLAG";
+ const char* responseFlag =
+ this->Makefile->GetDefinition(responseFlagVar.c_str());
+ if(!responseFlag)
+ {
+ responseFlag = "@";
+ }
+
// Write a response file for each string.
const char* sep = "";
for(unsigned int i = 0; i < object_strings.size(); ++i)
@@ -1638,7 +1649,7 @@ cmMakefileTargetGenerator
sep = " ";
// Reference the response file.
- buildObjs += "@";
+ buildObjs += responseFlag;
buildObjs += this->Convert(objects_rsp.c_str(),
cmLocalGenerator::NONE,
cmLocalGenerator::SHELL);