summaryrefslogtreecommitdiffstats
path: root/Source/cmGlobalNinjaGenerator.cxx
diff options
context:
space:
mode:
authorPeter Kümmel <syntheticpp@gmx.net>2012-07-10 07:56:11 (GMT)
committerPeter Kümmel <syntheticpp@gmx.net>2012-07-10 08:53:24 (GMT)
commit7f647cf5ebf0b45663cdabe4fd137b87753b857c (patch)
tree2cee1cc242bf2e7b3836d5d4b540829821dc8721 /Source/cmGlobalNinjaGenerator.cxx
parent6274ca6f910683495124d22e371a1adc9cf0eebc (diff)
downloadCMake-7f647cf5ebf0b45663cdabe4fd137b87753b857c.zip
CMake-7f647cf5ebf0b45663cdabe4fd137b87753b857c.tar.gz
CMake-7f647cf5ebf0b45663cdabe4fd137b87753b857c.tar.bz2
Ninja: also write link libraries to rsp file
and enable rspfile support on Linux, needed for commands longer than e.g. 2096152 characters on Ubuntu.
Diffstat (limited to 'Source/cmGlobalNinjaGenerator.cxx')
-rw-r--r--Source/cmGlobalNinjaGenerator.cxx10
1 files changed, 9 insertions, 1 deletions
diff --git a/Source/cmGlobalNinjaGenerator.cxx b/Source/cmGlobalNinjaGenerator.cxx
index 9829d19..2bb409c 100644
--- a/Source/cmGlobalNinjaGenerator.cxx
+++ b/Source/cmGlobalNinjaGenerator.cxx
@@ -217,6 +217,7 @@ void cmGlobalNinjaGenerator::AddCustomCommandRule()
"Rule for running custom commands.",
/*depfile*/ "",
/*rspfile*/ "",
+ /*rspcontent*/ "",
/*restat*/ true);
}
@@ -258,6 +259,7 @@ void cmGlobalNinjaGenerator::WriteRule(std::ostream& os,
const std::string& comment,
const std::string& depfile,
const std::string& rspfile,
+ const std::string& rspcontent,
bool restat,
bool generator)
{
@@ -307,7 +309,8 @@ void cmGlobalNinjaGenerator::WriteRule(std::ostream& os,
cmGlobalNinjaGenerator::Indent(os, 1);
os << "rspfile = " << rspfile << "\n";
cmGlobalNinjaGenerator::Indent(os, 1);
- os << "rspfile_content = $in" << "\n";
+ os << "rspfile_content = " <<
+ (rspcontent.empty() ? "$in" :rspcontent) << "\n";
}
if(restat)
@@ -538,6 +541,7 @@ void cmGlobalNinjaGenerator::AddRule(const std::string& name,
const std::string& comment,
const std::string& depfile,
const std::string& rspfile,
+ const std::string& rspcontent,
bool restat,
bool generator)
{
@@ -555,6 +559,7 @@ void cmGlobalNinjaGenerator::AddRule(const std::string& name,
comment,
depfile,
rspfile,
+ rspcontent,
restat,
generator);
@@ -911,6 +916,7 @@ void cmGlobalNinjaGenerator::WriteTargetRebuildManifest(std::ostream& os)
"Rule for re-running cmake.",
/*depfile=*/ "",
/*rspfile=*/ "",
+ /*rspcontent*/ "",
/*restat=*/ false,
/*generator=*/ true);
@@ -960,6 +966,7 @@ void cmGlobalNinjaGenerator::WriteTargetClean(std::ostream& os)
"Rule for cleaning all built files.",
/*depfile=*/ "",
/*rspfile=*/ "",
+ /*rspcontent*/ "",
/*restat=*/ false,
/*generator=*/ false);
WriteBuild(os,
@@ -981,6 +988,7 @@ void cmGlobalNinjaGenerator::WriteTargetHelp(std::ostream& os)
"Rule for printing all primary targets available.",
/*depfile=*/ "",
/*rspfile=*/ "",
+ /*rspcontent*/ "",
/*restat=*/ false,
/*generator=*/ false);
WriteBuild(os,