diff options
author | Dmitry Ivanov <dmitry.ivanov@king.com> | 2016-04-06 10:55:15 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2016-04-07 13:45:29 (GMT) |
commit | f9644a2d1b52fb566bdad9a7211a86a167d73859 (patch) | |
tree | 771d49321b8b201ffb38681c7c21d084d46ff0c6 | |
parent | 24c9106b7b2c3729985b89b06a2732ee3f555022 (diff) | |
download | CMake-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.cxx | 7 | ||||
-rw-r--r-- | Source/cmGlobalNinjaGenerator.h | 2 | ||||
-rw-r--r-- | Source/cmNinjaNormalTargetGenerator.cxx | 2 |
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( |