cmMakefile: Simplify custom target 'force' output name generation
Remove unnecessary check of policy CMP0049. The policy can never trigger on our internally-generated name because it has no variable references. The rename in commit0ed5ce4cd8
(cmTarget: Rename AddSource method for backward compatibility., 2014-03-17, v3.1.0-rc1~688^2~17) made it look like this code path depended on CMP0049. Then commit0e1faa28cb
(cmMakefile: Separate custom command setup from actual creation, 2019-09-14, v3.16.0-rc1~85^2) and commitea1bed34b2
(cmMakefile: Extract utilities used for creation of custom commands, 2019-09-21, v3.16.0-rc1~52^2~1) built additional infrastructure to thread that dependence through the call stack. Remove it all.
This commit is contained in:
parent
2b1cc175ee
commit
d29da8ed3e
@ -27,10 +27,3 @@ enum class cmObjectLibraryCommands
|
||||
Reject,
|
||||
Accept
|
||||
};
|
||||
|
||||
/** Utility target output source file name. */
|
||||
struct cmUtilityOutput
|
||||
{
|
||||
std::string Name;
|
||||
std::string NameCMP0049;
|
||||
};
|
||||
|
@ -4115,7 +4115,7 @@ void AppendCustomCommandToOutput(cmLocalGenerator& lg,
|
||||
|
||||
void AddUtilityCommand(cmLocalGenerator& lg, const cmListFileBacktrace& lfbt,
|
||||
cmCommandOrigin origin, cmTarget* target,
|
||||
const cmUtilityOutput& force, const char* workingDir,
|
||||
std::string const& force, const char* workingDir,
|
||||
const std::vector<std::string>& byproducts,
|
||||
const std::vector<std::string>& depends,
|
||||
const cmCustomCommandLines& commandLines,
|
||||
@ -4131,7 +4131,7 @@ void AddUtilityCommand(cmLocalGenerator& lg, const cmListFileBacktrace& lfbt,
|
||||
std::string no_main_dependency;
|
||||
cmImplicitDependsList no_implicit_depends;
|
||||
cmSourceFile* rule = AddCustomCommand(
|
||||
lg, lfbt, origin, { force.Name }, byproducts, depends, no_main_dependency,
|
||||
lg, lfbt, origin, { force }, byproducts, depends, no_main_dependency,
|
||||
no_implicit_depends, commandLines, comment, workingDir,
|
||||
/*replace=*/false, escapeOldStyle, uses_terminal, command_expand_lists,
|
||||
/*depfile=*/"", job_pool, stdPipesUTF8);
|
||||
@ -4139,9 +4139,7 @@ void AddUtilityCommand(cmLocalGenerator& lg, const cmListFileBacktrace& lfbt,
|
||||
lg.AddTargetByproducts(target, byproducts, lfbt, origin);
|
||||
}
|
||||
|
||||
if (!force.NameCMP0049.empty()) {
|
||||
target->AddSource(force.NameCMP0049);
|
||||
}
|
||||
target->AddSource(force);
|
||||
}
|
||||
|
||||
std::vector<std::string> ComputeISPCObjectSuffixes(cmGeneratorTarget* target)
|
||||
|
@ -684,7 +684,7 @@ void AppendCustomCommandToOutput(cmLocalGenerator& lg,
|
||||
|
||||
void AddUtilityCommand(cmLocalGenerator& lg, const cmListFileBacktrace& lfbt,
|
||||
cmCommandOrigin origin, cmTarget* target,
|
||||
const cmUtilityOutput& force, const char* workingDir,
|
||||
std::string const& force, const char* workingDir,
|
||||
const std::vector<std::string>& byproducts,
|
||||
const std::vector<std::string>& depends,
|
||||
const cmCustomCommandLines& commandLines,
|
||||
|
@ -1257,25 +1257,18 @@ void cmMakefile::AppendCustomCommandToOutput(
|
||||
}
|
||||
}
|
||||
|
||||
cmUtilityOutput cmMakefile::GetUtilityOutput(cmTarget* target)
|
||||
std::string cmMakefile::GetUtilityOutput(cmTarget* target)
|
||||
{
|
||||
std::string force = cmStrCat(this->GetCurrentBinaryDirectory(),
|
||||
"/CMakeFiles/", target->GetName());
|
||||
std::string forceCMP0049 = target->GetSourceCMP0049(force);
|
||||
{
|
||||
cmSourceFile* sf = nullptr;
|
||||
if (!forceCMP0049.empty()) {
|
||||
sf = this->GetOrCreateSource(forceCMP0049, false,
|
||||
cmSourceFileLocationKind::Known);
|
||||
}
|
||||
// The output is not actually created so mark it symbolic.
|
||||
if (sf) {
|
||||
sf->SetProperty("SYMBOLIC", "1");
|
||||
} else {
|
||||
cmSystemTools::Error("Could not get source file entry for " + force);
|
||||
}
|
||||
// The output is not actually created so mark it symbolic.
|
||||
if (cmSourceFile* sf = this->GetOrCreateSource(
|
||||
force, false, cmSourceFileLocationKind::Known)) {
|
||||
sf->SetProperty("SYMBOLIC", "1");
|
||||
} else {
|
||||
cmSystemTools::Error("Could not get source file entry for " + force);
|
||||
}
|
||||
return { std::move(force), std::move(forceCMP0049) };
|
||||
return force;
|
||||
}
|
||||
|
||||
cmTarget* cmMakefile::AddUtilityCommand(
|
||||
@ -1295,8 +1288,8 @@ cmTarget* cmMakefile::AddUtilityCommand(
|
||||
}
|
||||
|
||||
// Get the output name of the utility target and mark it generated.
|
||||
cmUtilityOutput force = this->GetUtilityOutput(target);
|
||||
this->GetOrCreateGeneratedSource(force.Name);
|
||||
std::string force = this->GetUtilityOutput(target);
|
||||
this->GetOrCreateGeneratedSource(force);
|
||||
|
||||
// Always create the byproduct sources and mark them generated.
|
||||
this->CreateGeneratedOutputs(byproducts);
|
||||
|
@ -243,9 +243,9 @@ public:
|
||||
bool excludeFromAll = false);
|
||||
|
||||
/**
|
||||
* Return the utility target output source file name and the CMP0049 name.
|
||||
* Return the utility target output source file name.
|
||||
*/
|
||||
cmUtilityOutput GetUtilityOutput(cmTarget* target);
|
||||
std::string GetUtilityOutput(cmTarget* target);
|
||||
|
||||
/**
|
||||
* Dispatch adding a utility to the build. A utility target is a command
|
||||
|
Loading…
Reference in New Issue
Block a user