summaryrefslogtreecommitdiffstats
path: root/Source/cmGlobalNinjaGenerator.cxx
diff options
context:
space:
mode:
authorPeter Kümmel <syntheticpp@gmx.net>2012-09-26 08:07:25 (GMT)
committerPeter Kümmel <syntheticpp@gmx.net>2012-09-28 10:33:57 (GMT)
commitf1670ab18a21b635e58e1a53178c25c722911504 (patch)
tree510df1c6a5e7a01f2908127f200601bfb29da457 /Source/cmGlobalNinjaGenerator.cxx
parent64d64b4edfe9a64fdc88c97e67681c9a16fb5eca (diff)
downloadCMake-f1670ab18a21b635e58e1a53178c25c722911504.zip
CMake-f1670ab18a21b635e58e1a53178c25c722911504.tar.gz
CMake-f1670ab18a21b635e58e1a53178c25c722911504.tar.bz2
Ninja: don't confuse ninja's rsp files with nmake's
Move response files into CMakeFiles/ which makes them different to nmake's.
Diffstat (limited to 'Source/cmGlobalNinjaGenerator.cxx')
-rw-r--r--Source/cmGlobalNinjaGenerator.cxx12
1 files changed, 9 insertions, 3 deletions
diff --git a/Source/cmGlobalNinjaGenerator.cxx b/Source/cmGlobalNinjaGenerator.cxx
index 3f3cfbb..05f5b4c 100644
--- a/Source/cmGlobalNinjaGenerator.cxx
+++ b/Source/cmGlobalNinjaGenerator.cxx
@@ -106,6 +106,7 @@ void cmGlobalNinjaGenerator::WriteBuild(std::ostream& os,
const cmNinjaDeps& implicitDeps,
const cmNinjaDeps& orderOnlyDeps,
const cmNinjaVars& variables,
+ const std::string& rspfile,
int cmdLineLimit)
{
// Make sure there is a rule.
@@ -181,12 +182,17 @@ void cmGlobalNinjaGenerator::WriteBuild(std::ostream& os,
// check if a response file rule should be used
std::string buildstr = build.str();
- const std::string assignments = variable_assignments.str();
+ std::string assignments = variable_assignments.str();
const std::string args = arguments.str();
if (cmdLineLimit > 0
&& args.size() + buildstr.size() + assignments.size()
- > (size_t) cmdLineLimit)
- buildstr += "_RSPFILE";
+ > (size_t) cmdLineLimit) {
+ buildstr += "_RSP_FILE";
+ variable_assignments.clear();
+ cmGlobalNinjaGenerator::WriteVariable(variable_assignments,
+ "RSP_FILE", rspfile, "", 1);
+ assignments += variable_assignments.str();
+ }
os << buildstr << args << assignments;
}