diff options
author | Peter Kuemmel <syntheticpp@gmx.net> | 2012-06-14 23:45:18 (GMT) |
---|---|---|
committer | Peter Kuemmel <syntheticpp@gmx.net> | 2012-06-15 00:00:15 (GMT) |
commit | 41c28dc35ba7efaf9426a8b8f5597aee11b7db61 (patch) | |
tree | bc4cfe9341643b01413a66e873cb024734fb434f /Source | |
parent | f13a6a087e3f882b496ab34c12cc7777795a5c2f (diff) | |
download | CMake-41c28dc35ba7efaf9426a8b8f5597aee11b7db61.zip CMake-41c28dc35ba7efaf9426a8b8f5597aee11b7db61.tar.gz CMake-41c28dc35ba7efaf9426a8b8f5597aee11b7db61.tar.bz2 |
Ninja: be more accurate when estimating the command line length
Diffstat (limited to 'Source')
-rw-r--r-- | Source/cmGlobalNinjaGenerator.cxx | 3 | ||||
-rw-r--r-- | Source/cmNinjaNormalTargetGenerator.cxx | 7 |
2 files changed, 6 insertions, 4 deletions
diff --git a/Source/cmGlobalNinjaGenerator.cxx b/Source/cmGlobalNinjaGenerator.cxx index 3af58a9..30a4a07 100644 --- a/Source/cmGlobalNinjaGenerator.cxx +++ b/Source/cmGlobalNinjaGenerator.cxx @@ -177,7 +177,8 @@ void cmGlobalNinjaGenerator::WriteBuild(std::ostream& os, // check if a response file rule should be used const std::string args = arguments.str(); - if (cmdLineLimit > 0 && args.size() > (size_t)cmdLineLimit) + if (cmdLineLimit > 0 && + (args.size() + + builds.str().size()) > (size_t)cmdLineLimit) builds << "_RSPFILE"; os << builds.str() << args; diff --git a/Source/cmNinjaNormalTargetGenerator.cxx b/Source/cmNinjaNormalTargetGenerator.cxx index 6f08338..98d2fba 100644 --- a/Source/cmNinjaNormalTargetGenerator.cxx +++ b/Source/cmNinjaNormalTargetGenerator.cxx @@ -478,12 +478,13 @@ void cmNinjaNormalTargetGenerator::WriteLinkStatement() symlinkVars["POST_BUILD"] = postBuildCmdLine; } - int cmdLineLimit = -1; + int cmdLineLimit; #ifdef _WIN32 - cmdLineLimit = 8100; + cmdLineLimit = 8000; #else - // TODO + cmdLineLimit = -1; // TODO #endif + // Write the build statement for this target. cmGlobalNinjaGenerator::WriteBuild(this->GetBuildFileStream(), comment.str(), |