added version check against gcc-generated xml; added readme and few other notes about ifacecheck

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53534 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Francesco Montorsi
2008-05-10 09:37:41 +00:00
parent d6781628fd
commit 21864ff2a1
3 changed files with 90 additions and 0 deletions

View File

@@ -563,6 +563,31 @@ bool wxXmlGccInterface::Parse(const wxString& filename)
return false;
}
wxString version = doc.GetRoot()->GetAttribute("cvs_revision");
bool old = false;
#define MIN_REVISION 120
if (!version.StartsWith("1."))
old = true;
if (!old)
{
unsigned long rev = 0;
if (!version.Mid(2).ToULong(&rev))
old = true;
else
if (rev < MIN_REVISION)
old = true;
}
if (old)
{
LogError("The version of GCC-XML used for the creation of %s is too old; "
"the cvs_revision attribute of the root node reports '%s', "
"minimal required is 1.%d.", filename, version, MIN_REVISION);
return false;
}
wxToResolveTypeHashMap toResolveTypes;
wxClassMemberIdHashMap members;
wxTypeIdHashMap types;
@@ -1076,6 +1101,13 @@ bool wxXmlDoxygenInterface::Parse(const wxString& filename)
return false;
}
/*
NB: we may need in future to do a version-check here if the
format of the XML generated by doxygen changes.
For now (doxygen version 1.5.5), this check is not required
since AFAIK the XML format never changed since it was introduced.
*/
m_classes.Alloc(ESTIMATED_NUM_CLASSES);
// process files referenced by this index file