浏览代码

Ninja: always use response file for cmake_ninja_dyndep

Command line argument passed to the internal tool "cmake_ninja_dyndep"
could hit MAX_ARG_STRLEN on Linux for projects with a large code base.
To prevent such problems, a response file was opted for argument transfer
in all cases, not only on Windows.
Yurii Batrak 8 年之前
父节点
当前提交
4ef0eedb49
共有 1 个文件被更改,包括 2 次插入8 次删除
  1. 2 8
      Source/cmNinjaTargetGenerator.cxx

+ 2 - 8
Source/cmNinjaTargetGenerator.cxx

@@ -557,17 +557,11 @@ void cmNinjaTargetGenerator::WriteCompileRule(const std::string& lang)
     // Write the rule for ninja dyndep file generation.
     std::vector<std::string> ddCmds;
 
-#ifdef _WIN32
-    // Windows command line length is limited -> use response file for dyndep
-    // rules
+    // Command line length is almost always limited -> use response file for
+    // dyndep rules
     std::string ddRspFile = "$out.rsp";
     std::string ddRspContent = "$in";
     std::string ddInput = "@" + ddRspFile;
-#else
-    std::string ddRspFile;
-    std::string ddRspContent;
-    std::string ddInput = "$in";
-#endif
 
     // Run CMake dependency scanner on preprocessed output.
     std::string const cmake = this->GetLocalGenerator()->ConvertToOutputFormat(