Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions libs/rtemodel/include/RteInstance.h
Original file line number Diff line number Diff line change
Expand Up @@ -440,7 +440,7 @@ class RteItemInstance : public RteItem
* @brief get pointer to RteComponent
* @return pointer to RteComponent, nullptr by default
*/
RteComponent* GetComponent() const override { return nullptr;}
RteComponent* GetComponent() const override { return GetComponent(EMPTY_STRING);}

/**
* @brief get resolved component, even if this item is not filtered by specified target
Expand Down Expand Up @@ -861,7 +861,7 @@ class RteComponentInstance : public RteItemInstance
* @brief constructor
* @param parent pointer to RteItem parent
*/
RteComponentInstance(RteItem* parent);
RteComponentInstance(RteItem* parent = 0);

/**
* @brief virtual destructor
Expand Down Expand Up @@ -1057,6 +1057,9 @@ class RteComponentInstance : public RteItemInstance
*/
RteComponent* GetComponent(const std::string& targetName) const override
{ return GetResolvedComponent(targetName); }

using RteItemInstance::GetComponent; // returns first resolved

/**
* @brief get resolved component for specified target
* @param targetName target name to resolve component
Expand Down
12 changes: 8 additions & 4 deletions libs/rtemodel/src/RteInstance.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -242,7 +242,7 @@ void RteItemInstance::InitInstance(RteItem* item)
if (!item)
return;
SetTag(item->GetTag());
SetAttributes(item->GetAttributes());
AddAttributes(item->GetAttributes(), true);
}

void RteItemInstance::Clear()
Expand Down Expand Up @@ -1567,10 +1567,14 @@ RteItem* RteComponentInstance::GetEffectiveItem(const string& targetName) const

RteComponent* RteComponentInstance::GetResolvedComponent(const string& targetName) const
{
auto it = m_resolvedComponents.find(targetName);
if (it != m_resolvedComponents.end())
auto it = m_resolvedComponents.begin();
if(!targetName.empty()) {
it = m_resolvedComponents.find(targetName);
}
if(it != m_resolvedComponents.end()) {
return it->second;
return NULL;
}
return nullptr;
}

RteComponent* RteComponentInstance::GetPotentialComponent(const string& targetName) const
Expand Down
3 changes: 2 additions & 1 deletion tools/projmgr/include/ProjMgrWorker.h
Original file line number Diff line number Diff line change
Expand Up @@ -998,7 +998,8 @@ class ProjMgrWorker {
bool ProcessToolchain(ContextItem& context);
bool ProcessPackages(ContextItem& context, const std::string& packRoot);
bool ProcessComponents(ContextItem& context);
RteComponent* ProcessComponent(ContextItem& context, ComponentItem& item, RteComponentMap& componentMap, std::string& hint);
RteComponentInstance* ProcessComponent(ContextItem& context, ComponentItem& item, RteComponentMap& componentMap, std::string& hint);
RteComponent* ResolveComponent(RteComponentInstance* ci, ContextItem& context, ComponentItem& item, RteComponentMap& componentMap, std::string& hint);
bool ProcessGpdsc(ContextItem& context);
bool ProcessConfigFiles(ContextItem& context);
bool ProcessComponentFiles(ContextItem& context);
Expand Down
5 changes: 4 additions & 1 deletion tools/projmgr/src/ProjMgrCbuild.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,10 @@ void ProjMgrCbuild::SetContextNode(YAML::Node contextNode, const ContextItem* co

void ProjMgrCbuild::SetComponentsNode(YAML::Node node, const ContextItem* context) {
for (const auto& [componentId, component] : context->components) {
const RteComponent* rteComponent = component.instance->GetParent()->GetComponent();
const RteComponent* rteComponent = component.instance->GetComponent();
if(!rteComponent) {
continue;
}
const ComponentItem* componentItem = component.item;
YAML::Node componentNode;
SetNodeValue(componentNode[YAML_COMPONENT], componentId);
Expand Down
Loading
Loading