cmMakefile: Move CMP0116 lookup into Add{Custom,Utility}Command

Avoid repeating it at every call site.
This commit is contained in:
NAKAMURA Takumi 2021-11-03 13:23:03 +09:00 committed by Brad King
parent 2bad0145af
commit d0158b765b
8 changed files with 58 additions and 75 deletions

View File

@ -320,16 +320,15 @@ bool cmAddCustomCommandCommand(std::vector<std::string> const& args,
if (source.empty() && output.empty()) {
// Source is empty, use the target.
std::vector<std::string> no_depends;
mf.AddCustomCommandToTarget(
target, byproducts, no_depends, commandLines, cctype, comment,
working.c_str(), mf.GetPolicyStatus(cmPolicies::CMP0116), escapeOldStyle,
uses_terminal, depfile, job_pool, command_expand_lists);
mf.AddCustomCommandToTarget(target, byproducts, no_depends, commandLines,
cctype, comment, working.c_str(),
escapeOldStyle, uses_terminal, depfile,
job_pool, command_expand_lists);
} else if (target.empty()) {
// Target is empty, use the output.
mf.AddCustomCommandToOutput(
output, byproducts, depends, main_dependency, implicit_depends,
commandLines, comment, working.c_str(),
mf.GetPolicyStatus(cmPolicies::CMP0116), nullptr, false, escapeOldStyle,
commandLines, comment, working.c_str(), nullptr, false, escapeOldStyle,
uses_terminal, command_expand_lists, depfile, job_pool);
} else if (!byproducts.empty()) {
status.SetError("BYPRODUCTS may not be specified with SOURCE signatures");
@ -366,8 +365,7 @@ bool cmAddCustomCommandCommand(std::vector<std::string> const& args,
// Use the old-style mode for backward compatibility.
mf.AddCustomCommandOldStyle(target, outputs, depends, source, commandLines,
comment,
mf.GetPolicyStatus(cmPolicies::CMP0116));
comment);
}
return true;

View File

@ -10,7 +10,6 @@
#include "cmGlobalGenerator.h"
#include "cmMakefile.h"
#include "cmMessageType.h"
#include "cmPolicies.h"
#include "cmStateTypes.h"
#include "cmStringAlgorithms.h"
#include "cmSystemTools.h"
@ -214,8 +213,8 @@ bool cmAddCustomTargetCommand(std::vector<std::string> const& args,
bool escapeOldStyle = !verbatim;
cmTarget* target = mf.AddUtilityCommand(
targetName, excludeFromAll, working_directory.c_str(), byproducts, depends,
commandLines, mf.GetPolicyStatus(cmPolicies::CMP0116), escapeOldStyle,
comment, uses_terminal, command_expand_lists, job_pool);
commandLines, escapeOldStyle, comment, uses_terminal, command_expand_lists,
job_pool);
// Add additional user-specified source files to the target.
target->AddSources(sources);

View File

@ -225,8 +225,7 @@ static void CCONV cmAddUtilityCommand(void* arg, const char* utilityName,
// Pass the call to the makefile instance.
std::vector<std::string> no_byproducts;
mf->AddUtilityCommand(utilityName, !all, nullptr, no_byproducts, depends2,
commandLines,
mf->GetPolicyStatus(cmPolicies::CMP0116));
commandLines);
}
static void CCONV cmAddCustomCommand(void* arg, const char* source,
@ -267,8 +266,7 @@ static void CCONV cmAddCustomCommand(void* arg, const char* source,
// Pass the call to the makefile instance.
const char* no_comment = nullptr;
mf->AddCustomCommandOldStyle(target, outputs2, depends2, source,
commandLines, no_comment,
mf->GetPolicyStatus(cmPolicies::CMP0116));
commandLines, no_comment);
}
static void CCONV cmAddCustomCommandToOutput(void* arg, const char* output,
@ -304,8 +302,7 @@ static void CCONV cmAddCustomCommandToOutput(void* arg, const char* output,
const char* no_comment = nullptr;
const char* no_working_dir = nullptr;
mf->AddCustomCommandToOutput(output, depends2, main_dependency, commandLines,
no_comment, no_working_dir,
mf->GetPolicyStatus(cmPolicies::CMP0116));
no_comment, no_working_dir);
}
static void CCONV cmAddCustomCommandToTarget(void* arg, const char* target,
@ -348,8 +345,7 @@ static void CCONV cmAddCustomCommandToTarget(void* arg, const char* target,
const char* no_comment = nullptr;
const char* no_working_dir = nullptr;
mf->AddCustomCommandToTarget(target, no_byproducts, no_depends, commandLines,
cctype, no_comment, no_working_dir,
mf->GetPolicyStatus(cmPolicies::CMP0116));
cctype, no_comment, no_working_dir);
}
static void addLinkLibrary(cmMakefile* mf, std::string const& target,

View File

@ -10,7 +10,6 @@
#include "cmLocalGenerator.h"
#include "cmMakefile.h"
#include "cmMessageType.h"
#include "cmPolicies.h"
#include "cmRange.h"
#include "cmSourceFile.h"
#include "cmStringAlgorithms.h"
@ -99,11 +98,9 @@ bool cmFLTKWrapUICommand(std::vector<std::string> const& args,
const char* no_comment = nullptr;
const char* no_working_dir = nullptr;
mf.AddCustomCommandToOutput(cxxres, depends, no_main_dependency,
commandLines, no_comment, no_working_dir,
mf.GetPolicyStatus(cmPolicies::CMP0116));
commandLines, no_comment, no_working_dir);
mf.AddCustomCommandToOutput(hname, depends, no_main_dependency,
commandLines, no_comment, no_working_dir,
mf.GetPolicyStatus(cmPolicies::CMP0116));
commandLines, no_comment, no_working_dir);
cmSourceFile* sf = mf.GetSource(cxxres);
sf->AddDepend(hname);

View File

@ -1059,9 +1059,8 @@ cmTarget* cmMakefile::AddCustomCommandToTarget(
const std::string& target, const std::vector<std::string>& byproducts,
const std::vector<std::string>& depends,
const cmCustomCommandLines& commandLines, cmCustomCommandType type,
const char* comment, const char* workingDir,
cmPolicies::PolicyStatus cmp0116, bool escapeOldStyle, bool uses_terminal,
const std::string& depfile, const std::string& job_pool,
const char* comment, const char* workingDir, bool escapeOldStyle,
bool uses_terminal, const std::string& depfile, const std::string& job_pool,
bool command_expand_lists, bool stdPipesUTF8)
{
cmTarget* t = this->GetCustomCommandTarget(
@ -1075,6 +1074,8 @@ cmTarget* cmMakefile::AddCustomCommandToTarget(
// Always create the byproduct sources and mark them generated.
this->CreateGeneratedOutputs(byproducts);
auto cmp0116 = this->GetPolicyStatus(cmPolicies::CMP0116);
// Strings could be moved into the callback function with C++14.
cm::optional<std::string> commentStr = MakeOptionalString(comment);
cm::optional<std::string> workingStr = MakeOptionalString(workingDir);
@ -1097,18 +1098,16 @@ void cmMakefile::AddCustomCommandToOutput(
const std::string& output, const std::vector<std::string>& depends,
const std::string& main_dependency, const cmCustomCommandLines& commandLines,
const char* comment, const char* workingDir,
cmPolicies::PolicyStatus cmp0116, const CommandSourceCallback& callback,
bool replace, bool escapeOldStyle, bool uses_terminal,
bool command_expand_lists, const std::string& depfile,
const CommandSourceCallback& callback, bool replace, bool escapeOldStyle,
bool uses_terminal, bool command_expand_lists, const std::string& depfile,
const std::string& job_pool, bool stdPipesUTF8)
{
std::vector<std::string> no_byproducts;
cmImplicitDependsList no_implicit_depends;
this->AddCustomCommandToOutput(
{ output }, no_byproducts, depends, main_dependency, no_implicit_depends,
commandLines, comment, workingDir, cmp0116, callback, replace,
escapeOldStyle, uses_terminal, command_expand_lists, depfile, job_pool,
stdPipesUTF8);
commandLines, comment, workingDir, callback, replace, escapeOldStyle,
uses_terminal, command_expand_lists, depfile, job_pool, stdPipesUTF8);
}
void cmMakefile::AddCustomCommandToOutput(
@ -1117,10 +1116,9 @@ void cmMakefile::AddCustomCommandToOutput(
const std::vector<std::string>& depends, const std::string& main_dependency,
const cmImplicitDependsList& implicit_depends,
const cmCustomCommandLines& commandLines, const char* comment,
const char* workingDir, cmPolicies::PolicyStatus cmp0116,
const CommandSourceCallback& callback, bool replace, bool escapeOldStyle,
bool uses_terminal, bool command_expand_lists, const std::string& depfile,
const std::string& job_pool, bool stdPipesUTF8)
const char* workingDir, const CommandSourceCallback& callback, bool replace,
bool escapeOldStyle, bool uses_terminal, bool command_expand_lists,
const std::string& depfile, const std::string& job_pool, bool stdPipesUTF8)
{
// Make sure there is at least one output.
if (outputs.empty()) {
@ -1137,6 +1135,8 @@ void cmMakefile::AddCustomCommandToOutput(
this->CreateGeneratedOutputs(outputs);
this->CreateGeneratedOutputs(byproducts);
auto cmp0116 = this->GetPolicyStatus(cmPolicies::CMP0116);
// Strings could be moved into the callback function with C++14.
cm::optional<std::string> commentStr = MakeOptionalString(comment);
cm::optional<std::string> workingStr = MakeOptionalString(workingDir);
@ -1160,8 +1160,7 @@ void cmMakefile::AddCustomCommandToOutput(
void cmMakefile::AddCustomCommandOldStyle(
const std::string& target, const std::vector<std::string>& outputs,
const std::vector<std::string>& depends, const std::string& source,
const cmCustomCommandLines& commandLines, const char* comment,
cmPolicies::PolicyStatus cmp0116)
const cmCustomCommandLines& commandLines, const char* comment)
{
// Translate the old-style signature to one of the new-style
// signatures.
@ -1172,7 +1171,7 @@ void cmMakefile::AddCustomCommandOldStyle(
std::vector<std::string> no_byproducts;
this->AddCustomCommandToTarget(
target, no_byproducts, depends, commandLines,
cmCustomCommandType::POST_BUILD, comment, nullptr, cmp0116);
cmCustomCommandType::POST_BUILD, comment, nullptr);
return;
}
@ -1205,8 +1204,7 @@ void cmMakefile::AddCustomCommandOldStyle(
// The source looks like a real file. Use it as the main dependency.
for (std::string const& output : outputs) {
this->AddCustomCommandToOutput(output, depends, source, commandLines,
comment, nullptr, cmp0116,
addRuleFileToTarget);
comment, nullptr, addRuleFileToTarget);
}
} else {
std::string no_main_dependency;
@ -1216,7 +1214,7 @@ void cmMakefile::AddCustomCommandOldStyle(
// The source may not be a real file. Do not use a main dependency.
for (std::string const& output : outputs) {
this->AddCustomCommandToOutput(output, depends2, no_main_dependency,
commandLines, comment, nullptr, cmp0116,
commandLines, comment, nullptr,
addRuleFileToTarget);
}
}
@ -1243,9 +1241,9 @@ cmTarget* cmMakefile::AddUtilityCommand(
const std::string& utilityName, bool excludeFromAll, const char* workingDir,
const std::vector<std::string>& byproducts,
const std::vector<std::string>& depends,
const cmCustomCommandLines& commandLines, cmPolicies::PolicyStatus cmp0116,
bool escapeOldStyle, const char* comment, bool uses_terminal,
bool command_expand_lists, const std::string& job_pool, bool stdPipesUTF8)
const cmCustomCommandLines& commandLines, bool escapeOldStyle,
const char* comment, bool uses_terminal, bool command_expand_lists,
const std::string& job_pool, bool stdPipesUTF8)
{
cmTarget* target = this->AddNewUtilityTarget(utilityName, excludeFromAll);
@ -1258,6 +1256,8 @@ cmTarget* cmMakefile::AddUtilityCommand(
// Always create the byproduct sources and mark them generated.
this->CreateGeneratedOutputs(byproducts);
auto cmp0116 = this->GetPolicyStatus(cmPolicies::CMP0116);
// Strings could be moved into the callback function with C++14.
cm::optional<std::string> commentStr = MakeOptionalString(comment);
cm::optional<std::string> workingStr = MakeOptionalString(workingDir);

View File

@ -169,8 +169,7 @@ public:
const std::string& target, const std::vector<std::string>& byproducts,
const std::vector<std::string>& depends,
const cmCustomCommandLines& commandLines, cmCustomCommandType type,
const char* comment, const char* workingDir,
cmPolicies::PolicyStatus cmp0116, bool escapeOldStyle = true,
const char* comment, const char* workingDir, bool escapeOldStyle = true,
bool uses_terminal = false, const std::string& depfile = "",
const std::string& job_pool = "", bool command_expand_lists = false,
bool stdPipesUTF8 = false);
@ -187,11 +186,11 @@ public:
const std::string& output, const std::vector<std::string>& depends,
const std::string& main_dependency,
const cmCustomCommandLines& commandLines, const char* comment,
const char* workingDir, cmPolicies::PolicyStatus cmp0116,
const CommandSourceCallback& callback = nullptr, bool replace = false,
bool escapeOldStyle = true, bool uses_terminal = false,
bool command_expand_lists = false, const std::string& depfile = "",
const std::string& job_pool = "", bool stdPipesUTF8 = false);
const char* workingDir, const CommandSourceCallback& callback = nullptr,
bool replace = false, bool escapeOldStyle = true,
bool uses_terminal = false, bool command_expand_lists = false,
const std::string& depfile = "", const std::string& job_pool = "",
bool stdPipesUTF8 = false);
void AddCustomCommandToOutput(
const std::vector<std::string>& outputs,
const std::vector<std::string>& byproducts,
@ -199,18 +198,17 @@ public:
const std::string& main_dependency,
const cmImplicitDependsList& implicit_depends,
const cmCustomCommandLines& commandLines, const char* comment,
const char* workingDir, cmPolicies::PolicyStatus cmp0116,
const CommandSourceCallback& callback = nullptr, bool replace = false,
bool escapeOldStyle = true, bool uses_terminal = false,
bool command_expand_lists = false, const std::string& depfile = "",
const std::string& job_pool = "", bool stdPipesUTF8 = false);
const char* workingDir, const CommandSourceCallback& callback = nullptr,
bool replace = false, bool escapeOldStyle = true,
bool uses_terminal = false, bool command_expand_lists = false,
const std::string& depfile = "", const std::string& job_pool = "",
bool stdPipesUTF8 = false);
void AddCustomCommandOldStyle(const std::string& target,
const std::vector<std::string>& outputs,
const std::vector<std::string>& depends,
const std::string& source,
const cmCustomCommandLines& commandLines,
const char* comment,
cmPolicies::PolicyStatus cmp0116);
const char* comment);
void AppendCustomCommandToOutput(
const std::string& output, const std::vector<std::string>& depends,
const cmImplicitDependsList& implicit_depends,
@ -256,10 +254,10 @@ public:
const std::string& utilityName, bool excludeFromAll,
const char* workingDir, const std::vector<std::string>& byproducts,
const std::vector<std::string>& depends,
const cmCustomCommandLines& commandLines, cmPolicies::PolicyStatus cmp0116,
bool escapeOldStyle = true, const char* comment = nullptr,
bool uses_terminal = false, bool command_expand_lists = false,
const std::string& job_pool = "", bool stdPipesUTF8 = false);
const cmCustomCommandLines& commandLines, bool escapeOldStyle = true,
const char* comment = nullptr, bool uses_terminal = false,
bool command_expand_lists = false, const std::string& job_pool = "",
bool stdPipesUTF8 = false);
/**
* Add a subdirectory to the build.

View File

@ -5,7 +5,6 @@
#include "cmCustomCommandLines.h"
#include "cmExecutionStatus.h"
#include "cmMakefile.h"
#include "cmPolicies.h"
#include "cmRange.h"
#include "cmSourceFile.h"
#include "cmStringAlgorithms.h"
@ -73,9 +72,9 @@ bool cmQTWrapCPPCommand(std::vector<std::string> const& args,
std::string no_main_dependency;
const char* no_working_dir = nullptr;
mf.AddCustomCommandToOutput(
newName, depends, no_main_dependency, commandLines, "Qt Wrapped File",
no_working_dir, mf.GetPolicyStatus(cmPolicies::CMP0116));
mf.AddCustomCommandToOutput(newName, depends, no_main_dependency,
commandLines, "Qt Wrapped File",
no_working_dir);
}
}

View File

@ -5,7 +5,6 @@
#include "cmCustomCommandLines.h"
#include "cmExecutionStatus.h"
#include "cmMakefile.h"
#include "cmPolicies.h"
#include "cmRange.h"
#include "cmSourceFile.h"
#include "cmStringAlgorithms.h"
@ -88,19 +87,16 @@ bool cmQTWrapUICommand(std::vector<std::string> const& args,
const char* no_comment = nullptr;
const char* no_working_dir = nullptr;
mf.AddCustomCommandToOutput(hName, depends, no_main_dependency,
hCommandLines, no_comment, no_working_dir,
mf.GetPolicyStatus(cmPolicies::CMP0116));
hCommandLines, no_comment, no_working_dir);
depends.push_back(hName);
mf.AddCustomCommandToOutput(cxxName, depends, no_main_dependency,
cxxCommandLines, no_comment, no_working_dir,
mf.GetPolicyStatus(cmPolicies::CMP0116));
cxxCommandLines, no_comment, no_working_dir);
depends.clear();
depends.push_back(hName);
mf.AddCustomCommandToOutput(mocName, depends, no_main_dependency,
mocCommandLines, no_comment, no_working_dir,
mf.GetPolicyStatus(cmPolicies::CMP0116));
mocCommandLines, no_comment, no_working_dir);
}
}