forked from pool/python-wxPython
e96b2617c7
- Add patch from upstream to fix building the package with doxygen >=1.9.7 (gh#wxWidgets/Phoenix#2497): * 0001-Support-building-with-Doxygen-1.9.7.patch OBS-URL: https://build.opensuse.org/request/show/1135226 OBS-URL: https://build.opensuse.org/package/show/X11:wxWidgets/python-wxPython?expand=0&rev=44
49 lines
1.9 KiB
Diff
49 lines
1.9 KiB
Diff
From 6a049ccc0ad96f25c3f7d8540b218ffe8921d8c5 Mon Sep 17 00:00:00 2001
|
|
From: Scott Talbert <swt@techie.net>
|
|
Date: Tue, 5 Dec 2023 23:42:21 -0500
|
|
Subject: [PATCH] Support building with Doxygen 1.9.7
|
|
|
|
Doxygen 1.9.7 made some changes whereby some method definitions are now
|
|
defined in separate XML files, with a "refid" that links to them. In
|
|
order to support this, we need to follow these "refids" to pick up the
|
|
method definition from the separate group XML files.
|
|
---
|
|
etgtools/extractors.py | 11 +++++++++++
|
|
1 file changed, 11 insertions(+)
|
|
|
|
diff --git a/etgtools/extractors.py b/etgtools/extractors.py
|
|
index 8c992cb14..5ae1361f9 100644
|
|
--- a/etgtools/extractors.py
|
|
+++ b/etgtools/extractors.py
|
|
@@ -62,6 +62,8 @@ def extract(self, element):
|
|
# class. Should be overridden in derived classes to get what each one
|
|
# needs in addition to the base.
|
|
self.name = element.find(self.nameTag).text
|
|
+ if self.name is None:
|
|
+ self.name = ''
|
|
if '::' in self.name:
|
|
loc = self.name.rfind('::')
|
|
self.name = self.name[loc+2:]
|
|
@@ -1574,12 +1576,21 @@ def addElement(self, element):
|
|
extractingMsg(kind, element)
|
|
for node in element.findall('sectiondef/memberdef'):
|
|
self.addElement(node)
|
|
+ for node in element.findall('sectiondef/member'):
|
|
+ node = self.resolveRefid(node)
|
|
+ self.addElement(node)
|
|
|
|
else:
|
|
raise ExtractorError('Unknown module item kind: %s' % kind)
|
|
|
|
return item
|
|
|
|
+ def resolveRefid(self, node):
|
|
+ from etgtools import XMLSRC
|
|
+ refid = node.get('refid')
|
|
+ fname = os.path.join(XMLSRC, refid.rsplit('_', 1)[0]) + '.xml'
|
|
+ root = et.parse(fname).getroot()
|
|
+ return root.find(".//memberdef[@id='{}']".format(refid))
|
|
|
|
|
|
def addCppFunction(self, type, name, argsString, body, doc=None, **kw):
|