summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Ivanov <dmitry.ivanov@king.com>2016-04-06 10:55:15 (GMT)
committerBrad King <brad.king@kitware.com>2016-04-07 13:45:29 (GMT)
commitf9644a2d1b52fb566bdad9a7211a86a167d73859 (patch)
tree771d49321b8b201ffb38681c7c21d084d46ff0c6
parent24c9106b7b2c3729985b89b06a2732ee3f555022 (diff)
downloadCMake-f9644a2d1b52fb566bdad9a7211a86a167d73859.zip
CMake-f9644a2d1b52fb566bdad9a7211a86a167d73859.tar.gz
CMake-f9644a2d1b52fb566bdad9a7211a86a167d73859.tar.bz2
cmGlobalNinjaGenerator: Clarify logic for forcing use of response files
Update the WriteBuild method to use a negative command line length limit to specify that we should force use of response files.
-rw-r--r--Source/cmGlobalNinjaGenerator.cxx7
-rw-r--r--Source/cmGlobalNinjaGenerator.h2
-rw-r--r--Source/cmNinjaNormalTargetGenerator.cxx2
3 files changed, 6 insertions, 5 deletions
diff --git a/Source/cmGlobalNinjaGenerator.cxx b/Source/cmGlobalNinjaGenerator.cxx
index f12396f..fadb0cf 100644
--- a/Source/cmGlobalNinjaGenerator.cxx
+++ b/Source/cmGlobalNinjaGenerator.cxx
@@ -230,9 +230,10 @@ void cmGlobalNinjaGenerator::WriteBuild(std::ostream& os,
std::string assignments = variable_assignments.str();
const std::string& args = arguments;
bool useResponseFile = false;
- if (cmdLineLimit > 0
- && args.size() + buildstr.size() + assignments.size()
- > (size_t) cmdLineLimit) {
+ if (cmdLineLimit < 0 ||
+ (cmdLineLimit > 0 &&
+ (args.size() + buildstr.size() + assignments.size())
+ > static_cast<size_t>(cmdLineLimit))) {
variable_assignments.str(std::string());
cmGlobalNinjaGenerator::WriteVariable(variable_assignments,
"RSP_FILE", rspfile, "", 1);
diff --git a/Source/cmGlobalNinjaGenerator.h b/Source/cmGlobalNinjaGenerator.h
index 3023a95..3093a11 100644
--- a/Source/cmGlobalNinjaGenerator.h
+++ b/Source/cmGlobalNinjaGenerator.h
@@ -94,7 +94,7 @@ public:
const cmNinjaDeps& orderOnlyDeps,
const cmNinjaVars& variables,
const std::string& rspfile = std::string(),
- int cmdLineLimit = -1,
+ int cmdLineLimit = 0,
bool* usedResponseFile = 0);
/**
diff --git a/Source/cmNinjaNormalTargetGenerator.cxx b/Source/cmNinjaNormalTargetGenerator.cxx
index 54cacef..322f37d 100644
--- a/Source/cmNinjaNormalTargetGenerator.cxx
+++ b/Source/cmNinjaNormalTargetGenerator.cxx
@@ -697,7 +697,7 @@ void cmNinjaNormalTargetGenerator::WriteLinkStatement()
cmGlobalNinjaGenerator& globalGen = *this->GetGlobalGenerator();
- int commandLineLengthLimit = 1;
+ int commandLineLengthLimit = -1;
if (!this->ForceResponseFile())
{
commandLineLengthLimit = calculateCommandLineLengthLimit(