@@ -53,10 +53,12 @@ static const QString IdAttribute = "id";
5353static const QString SeverityAttribute = " severity" ;
5454static const QString MsgAttribute = " msg" ;
5555static const QString VersionAttribute = " version" ;
56+ static const QString ProductNameAttribute = " product-name" ;
5657static const QString VerboseAttribute = " verbose" ;
5758
58- XmlReportV2::XmlReportV2 (const QString &filename) :
59+ XmlReportV2::XmlReportV2 (const QString &filename, QString productName ) :
5960 XmlReport(filename),
61+ mProductName(std::move(productName)),
6062 mXmlReader(nullptr ),
6163 mXmlWriter(nullptr )
6264{}
@@ -87,12 +89,18 @@ bool XmlReportV2::open()
8789
8890void XmlReportV2::writeHeader ()
8991{
92+ const auto nameAndVersion = Settings::getNameAndVersion (mProductName .toStdString ());
93+ const QString name = QString::fromStdString (nameAndVersion.first );
94+ const QString version = nameAndVersion.first .empty () ? CppCheck::version () : QString::fromStdString (nameAndVersion.second );
95+
9096 mXmlWriter ->setAutoFormatting (true );
9197 mXmlWriter ->writeStartDocument ();
9298 mXmlWriter ->writeStartElement (ResultElementName);
9399 mXmlWriter ->writeAttribute (VersionAttribute, QString::number (2 ));
94100 mXmlWriter ->writeStartElement (CppcheckElementName);
95- mXmlWriter ->writeAttribute (VersionAttribute, QString (CppCheck::version ()));
101+ if (!name.isEmpty ())
102+ mXmlWriter ->writeAttribute (ProductNameAttribute, name);
103+ mXmlWriter ->writeAttribute (VersionAttribute, version);
96104 mXmlWriter ->writeEndElement ();
97105 mXmlWriter ->writeStartElement (ErrorsElementName);
98106}
0 commit comments