Commit 089868a2 authored by Brad King's avatar Brad King
Browse files

cmState: Record buildsystem target names in each directory

Maintain in the directory state the list of target names added to be
built.  These are normal, non-imported targets (but do include INTERFACE
libraries).
parent 5c87b92b
......@@ -1930,6 +1930,7 @@ cmTarget* cmMakefile::AddNewTarget(cmState::TargetType type,
name, cmTarget(name, type, cmTarget::VisibilityNormal, this)))
.first;
this->GetGlobalGenerator()->IndexTarget(&it->second);
this->GetStateSnapshot().GetDirectory().AddNormalTargetName(name);
return &it->second;
}
......
......@@ -94,6 +94,8 @@ struct cmState::BuildsystemDirectoryStateType
std::vector<std::string> CompileOptions;
std::vector<cmListFileBacktrace> CompileOptionsBacktraces;
std::vector<std::string> NormalTargetNames;
std::string ProjectName;
cmPropertyMap Properties;
......@@ -324,6 +326,7 @@ cmState::Snapshot cmState::Reset()
it->CompileOptions.clear();
it->CompileOptionsBacktraces.clear();
it->DirectoryEnd = pos;
it->NormalTargetNames.clear();
it->Properties.clear();
it->Children.clear();
}
......@@ -1733,6 +1736,11 @@ std::vector<std::string> cmState::Directory::GetPropertyKeys() const
return keys;
}
void cmState::Directory::AddNormalTargetName(std::string const& name)
{
this->DirectoryState->NormalTargetNames.push_back(name);
}
bool operator==(const cmState::Snapshot& lhs, const cmState::Snapshot& rhs)
{
return lhs.Position == rhs.Position;
......
......@@ -175,6 +175,8 @@ public:
bool GetPropertyAsBool(const std::string& prop) const;
std::vector<std::string> GetPropertyKeys() const;
void AddNormalTargetName(std::string const& name);
private:
void ComputeRelativePathTopSource();
void ComputeRelativePathTopBinary();
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment