cmNinjaTargetGenerator: Remove redundant conditions for dyndep blocks

The GetScanCommand and GetScanBuildStatement helpers are called only in
code paths for dyndep.  Drop their checks for this condition.
This commit is contained in:
Brad King
2020-11-06 11:14:59 -05:00
parent 43fe7e0c97
commit 9f60e8aa52

View File

@@ -529,15 +529,11 @@ namespace {
// Create the command to run the dependency scanner
std::string GetScanCommand(const std::string& cmakeCmd, const std::string& tdi,
const std::string& lang, const std::string& ppFile,
bool needDyndep, const std::string& ddiFile)
const std::string& ddiFile)
{
std::string ccmd =
cmStrCat(cmakeCmd, " -E cmake_ninja_depends --tdi=", tdi, " --lang=", lang,
" --pp=", ppFile, " --dep=$DEP_FILE");
if (needDyndep) {
ccmd = cmStrCat(ccmd, " --obj=$OBJ_FILE --ddi=", ddiFile);
}
return ccmd;
return cmStrCat(cmakeCmd, " -E cmake_ninja_depends --tdi=", tdi,
" --lang=", lang, " --pp=", ppFile,
" --dep=$DEP_FILE --obj=$OBJ_FILE --ddi=", ddiFile);
}
// Helper function to create dependency scanning rule that may or may
@@ -665,8 +661,8 @@ void cmNinjaTargetGenerator::WriteCompileRule(const std::string& lang,
if (needDyndep) {
// Rule to scan dependencies of sources that need preprocessing.
{
const auto ppScanCommand = GetScanCommand(
cmakeCmd, tdi, lang, "$out", needDyndep, "$DYNDEP_INTERMEDIATE_FILE");
const auto ppScanCommand = GetScanCommand(cmakeCmd, tdi, lang, "$out",
"$DYNDEP_INTERMEDIATE_FILE");
const auto ppVar = cmStrCat("CMAKE_", lang, "_PREPROCESS_SOURCE");
auto ppRule = GetScanRule(
@@ -689,7 +685,7 @@ void cmNinjaTargetGenerator::WriteCompileRule(const std::string& lang,
// Rule to scan dependencies of sources that do not need preprocessing.
{
const auto scanCommand =
GetScanCommand(cmakeCmd, tdi, lang, "$in", needDyndep, "$out");
GetScanCommand(cmakeCmd, tdi, lang, "$in", "$out");
auto scanRule = GetScanRule(
this->LanguageScanRule(lang, config), vars, "", flags, launcher,
@@ -1072,7 +1068,6 @@ cmNinjaBuild GetScanBuildStatement(const std::string& ruleName,
bool compilePP, bool compilePPWithDefines,
cmNinjaBuild& objBuild, cmNinjaVars& vars,
const std::string& depFileName,
bool needDyndep,
const std::string& objectFileName)
{
cmNinjaBuild scanBuild(ruleName);
@@ -1125,19 +1120,17 @@ cmNinjaBuild GetScanBuildStatement(const std::string& ruleName,
vars.erase("DEP_FILE");
}
if (needDyndep) {
// Tell dependency scanner the object file that will result from
// compiling the source.
scanBuild.Variables["OBJ_FILE"] = objectFileName;
// Tell dependency scanner the object file that will result from
// compiling the source.
scanBuild.Variables["OBJ_FILE"] = objectFileName;
// Tell dependency scanner where to store dyndep intermediate results.
std::string const ddiFile = cmStrCat(objectFileName, ".ddi");
if (ppFileName.empty()) {
scanBuild.Outputs.push_back(ddiFile);
} else {
scanBuild.Variables["DYNDEP_INTERMEDIATE_FILE"] = ddiFile;
scanBuild.ImplicitOuts.push_back(ddiFile);
}
// Tell dependency scanner where to store dyndep intermediate results.
std::string const ddiFile = cmStrCat(objectFileName, ".ddi");
if (ppFileName.empty()) {
scanBuild.Outputs.push_back(ddiFile);
} else {
scanBuild.Variables["DYNDEP_INTERMEDIATE_FILE"] = ddiFile;
scanBuild.ImplicitOuts.push_back(ddiFile);
}
return scanBuild;
}
@@ -1314,7 +1307,7 @@ void cmNinjaTargetGenerator::WriteObjectBuildStatement(
cmNinjaBuild ppBuild = GetScanBuildStatement(
buildName, ppFileName, compilePP, compilePPWithDefines, objBuild, vars,
depFileName, needDyndep, objectFileName);
depFileName, objectFileName);
if (compilePP) {
// In case compilation requires flags that are incompatible with