1
0
Эх сурвалжийг харах

Ninja: add option to enforce usage of response files

If the cmake or environment variable CMAKE_NINJA_FORCE_RESPONSE_FILE
is set then a response file is used regardless the command line length.
Peter Kümmel 13 жил өмнө
parent
commit
1e47ccb554

+ 4 - 4
Source/cmNinjaNormalTargetGenerator.cxx

@@ -554,10 +554,10 @@ void cmNinjaNormalTargetGenerator::WriteLinkStatement()
   int linkRuleLength = this->GetGlobalGenerator()->
                                  GetRuleCmdLength(this->LanguageLinkerRule());
 
-  int commandLineLengthLimit;
-  if (this->GetMakefile()->IsDefinitionSet("CMAKE_FORCE_RESPONSE_FILE")) {
-    commandLineLengthLimit = 1;
-  } else {
+  int commandLineLengthLimit = 1;
+  const char* forceRspFile = "CMAKE_NINJA_FORCE_RESPONSE_FILE";
+  if (!this->GetMakefile()->IsDefinitionSet(forceRspFile) &&
+      cmSystemTools::GetEnv(forceRspFile) == 0) {
 #ifdef _WIN32
     commandLineLengthLimit = 8000 - linkRuleLength;
 #elif defined(__linux) || defined(__APPLE__)