cmMakefile: Split out CreateNewTarget from AddNewTarget
`CreateNewTarget` tells whether the target is inserted or not.
This commit is contained in:
parent
16d9c317a3
commit
854dcb0d01
@ -2118,15 +2118,23 @@ cmTarget* cmMakefile::AddExecutable(const std::string& exeName,
|
||||
cmTarget* cmMakefile::AddNewTarget(cmStateEnums::TargetType type,
|
||||
const std::string& name)
|
||||
{
|
||||
auto it = this->Targets
|
||||
.emplace(name,
|
||||
cmTarget(name, type, cmTarget::VisibilityNormal, this,
|
||||
cmTarget::PerConfig::Yes))
|
||||
.first;
|
||||
return &this->CreateNewTarget(name, type).first;
|
||||
}
|
||||
|
||||
std::pair<cmTarget&, bool> cmMakefile::CreateNewTarget(
|
||||
const std::string& name, cmStateEnums::TargetType type,
|
||||
cmTarget::PerConfig perConfig)
|
||||
{
|
||||
auto ib = this->Targets.emplace(
|
||||
name, cmTarget(name, type, cmTarget::VisibilityNormal, this, perConfig));
|
||||
auto it = ib.first;
|
||||
if (!ib.second) {
|
||||
return std::make_pair(std::ref(it->second), false);
|
||||
}
|
||||
this->OrderedTargets.push_back(&it->second);
|
||||
this->GetGlobalGenerator()->IndexTarget(&it->second);
|
||||
this->GetStateSnapshot().GetDirectory().AddNormalTargetName(name);
|
||||
return &it->second;
|
||||
return std::make_pair(std::ref(it->second), true);
|
||||
}
|
||||
|
||||
cmTarget* cmMakefile::AddNewUtilityTarget(const std::string& utilityName,
|
||||
|
@ -13,6 +13,7 @@
|
||||
#include <stack>
|
||||
#include <string>
|
||||
#include <unordered_map>
|
||||
#include <utility>
|
||||
#include <vector>
|
||||
|
||||
#include <cm/optional>
|
||||
@ -230,6 +231,10 @@ public:
|
||||
cmTarget* AddImportedTarget(const std::string& name,
|
||||
cmStateEnums::TargetType type, bool global);
|
||||
|
||||
std::pair<cmTarget&, bool> CreateNewTarget(
|
||||
const std::string& name, cmStateEnums::TargetType type,
|
||||
cmTarget::PerConfig perConfig = cmTarget::PerConfig::Yes);
|
||||
|
||||
cmTarget* AddNewTarget(cmStateEnums::TargetType type,
|
||||
const std::string& name);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user