#pragma once #include #include #include #include #include #include #include "TargetFamily.hpp" #include "TargetMemory.hpp" #include "TargetAddressSpaceDescriptor.hpp" #include "TargetPeripheralDescriptor.hpp" #include "TargetVariant.hpp" #include "TargetBreakpoint.hpp" namespace Targets { struct TargetDescriptor { std::string name; TargetFamily family; std::string marketId; std::string vendorName; std::map addressSpaceDescriptorsByKey; std::map peripheralDescriptorsByKey; std::vector variants; BreakpointResources breakpointResources; TargetDescriptor( const std::string& name, TargetFamily family, const std::string& vendorName, const std::string& marketName, const std::map& addressSpaceDescriptorsByKey, const std::map& peripheralDescriptorsByKey, const std::vector& variants, const BreakpointResources& breakpointResources ); std::optional> tryGetAddressSpaceDescriptor( const std::string& key ) const; const TargetAddressSpaceDescriptor& getAddressSpaceDescriptor(const std::string& key) const; }; } Q_DECLARE_METATYPE(Targets::TargetDescriptor)