diff OrthancFramework/Resources/CheckOrthancFrameworkSymbols.py @ 4304:50b0c69b653a

continued abi
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 06 Nov 2020 16:33:52 +0100
parents 44b53a2c0a13
children 8992faf451fc
line wrap: on
line diff
--- a/OrthancFramework/Resources/CheckOrthancFrameworkSymbols.py	Fri Nov 06 15:37:30 2020 +0100
+++ b/OrthancFramework/Resources/CheckOrthancFrameworkSymbols.py	Fri Nov 06 16:33:52 2020 +0100
@@ -145,13 +145,11 @@
     ## Ignore pure abstract interfaces, by checking the following
     ## criteria:
     ##   - It must be a C++ class (not a struct)
-    ##   - The class name must start with "I"
     ##   - All its methods must be pure virtual (abstract) and public
     ##   - Its destructor must be public, virtual, and must do nothing
     ##
     
-    if (child.kind == clang.cindex.CursorKind.CLASS_DECL and
-        fqn[-1].startswith('I')):
+    if child.kind == clang.cindex.CursorKind.CLASS_DECL:
         abstract = True
         isPublic = False
 
@@ -185,6 +183,9 @@
                 elif (i.kind == clang.cindex.CursorKind.CLASS_DECL or
                       i.kind == clang.cindex.CursorKind.STRUCT_DECL):
                     ExploreClass(i, fqn + [ i.spelling ])
+                elif (i.kind == clang.cindex.CursorKind.TYPEDEF_DECL or  # Allow "typedef"
+                      i.kind == clang.cindex.CursorKind.ENUM_DECL):      # Allow enums
+                    pass
                 else:
                     abstract = False