summaryrefslogtreecommitdiffstats
path: root/Source/cmGlobalNinjaGenerator.cxx
diff options
context:
space:
mode:
authorBernhard Burgermeister <bburgerm@googlemail.com>2017-02-07 15:50:47 (GMT)
committerBernhard Burgermeister <bburgerm@googlemail.com>2017-04-25 07:32:50 (GMT)
commit594d3d6fffac33062629bafb819a5df7c1326824 (patch)
tree33f63d977929a8d07464639534815633e1074fed /Source/cmGlobalNinjaGenerator.cxx
parent8b0016ab658e2b96211c33055b8cf38b6d4a6d94 (diff)
downloadCMake-594d3d6fffac33062629bafb819a5df7c1326824.zip
CMake-594d3d6fffac33062629bafb819a5df7c1326824.tar.gz
CMake-594d3d6fffac33062629bafb819a5df7c1326824.tar.bz2
Ninja: support response file for cmake_ninja_depends on Windows
The internal tool "cmake_ninja_depends" now supports reading the list of ddi files from a reponse file to circumvent Windows command line length limits. Use this response file for dyndep rule on Windows.
Diffstat (limited to 'Source/cmGlobalNinjaGenerator.cxx')
-rw-r--r--Source/cmGlobalNinjaGenerator.cxx6
1 files changed, 5 insertions, 1 deletions
diff --git a/Source/cmGlobalNinjaGenerator.cxx b/Source/cmGlobalNinjaGenerator.cxx
index e61cbd9..092cead 100644
--- a/Source/cmGlobalNinjaGenerator.cxx
+++ b/Source/cmGlobalNinjaGenerator.cxx
@@ -1823,10 +1823,14 @@ bool cmGlobalNinjaGenerator::WriteDyndepFile(
int cmcmd_cmake_ninja_dyndep(std::vector<std::string>::const_iterator argBeg,
std::vector<std::string>::const_iterator argEnd)
{
+ std::vector<std::string> arg_full =
+ cmSystemTools::HandleResponseFile(argBeg, argEnd);
+
std::string arg_dd;
std::string arg_tdi;
std::vector<std::string> arg_ddis;
- for (std::vector<std::string>::const_iterator a = argBeg; a != argEnd; ++a) {
+ for (std::vector<std::string>::const_iterator a = arg_full.begin();
+ a != arg_full.end(); ++a) {
std::string const& arg = *a;
if (cmHasLiteralPrefix(arg, "--tdi=")) {
arg_tdi = arg.substr(6);