Ninja Multi-Config: Make link response files per-config

Fixes: #20961
This commit is contained in:
Kyle Edwards 2020-07-15 13:12:02 -04:00
parent e647949539
commit 99ed39b011

View File

@ -748,8 +748,13 @@ void cmNinjaNormalTargetGenerator::WriteDeviceLinkStatement(
static_cast<int>(cmSystemTools::CalculateCommandLineLengthLimit()) -
globalGen->GetRuleCmdLength(this->LanguageLinkerDeviceRule(config));
build.RspFile = this->ConvertToNinjaPath(std::string("CMakeFiles/") +
genTarget->GetName() + ".rsp");
std::string path = localGen.GetHomeRelativeOutputPath();
if (!path.empty()) {
path += '/';
}
build.RspFile = this->ConvertToNinjaPath(
cmStrCat(path, "CMakeFiles/", genTarget->GetName(),
globalGen->IsMultiConfig() ? cmStrCat('.', config) : "", ".rsp"));
// Gather order-only dependencies.
this->GetLocalGenerator()->AppendTargetDepends(
@ -1157,8 +1162,13 @@ void cmNinjaNormalTargetGenerator::WriteLinkStatement(
globalGen->GetRuleCmdLength(linkBuild.Rule);
}
linkBuild.RspFile = this->ConvertToNinjaPath(std::string("CMakeFiles/") +
gt->GetName() + ".rsp");
std::string path = localGen.GetHomeRelativeOutputPath();
if (!path.empty()) {
path += '/';
}
linkBuild.RspFile = this->ConvertToNinjaPath(
cmStrCat(path, "CMakeFiles/", gt->GetName(),
globalGen->IsMultiConfig() ? cmStrCat('.', config) : "", ".rsp"));
// Gather order-only dependencies.
this->GetLocalGenerator()->AppendTargetDepends(gt, linkBuild.OrderOnlyDeps,