CSIT-1148: VPPAPIGEN 2nd level import of .api ignored 91/13291/2
authorOle Troan <ot@cisco.com>
Fri, 29 Jun 2018 09:32:33 +0000 (11:32 +0200)
committerDamjan Marion <dmarion@me.com>
Fri, 29 Jun 2018 11:18:22 +0000 (11:18 +0000)
Change-Id: I73dcab0c5ff2405b1fcba25975955e1267a4ac4e
Signed-off-by: Ole Troan <ot@cisco.com>
src/tools/vppapigen/vppapigen.py

index 5cedfb2..f3094ec 100755 (executable)
@@ -685,12 +685,13 @@ class VPPAPI(object):
             # Only allow the following object types from imported file
             if in_import and not (isinstance(o, Enum) or
                                   isinstance(o, Union) or
-                                  isinstance(o, Typedef)):
+                                  isinstance(o, Typedef) or
+                                  isinstance(o, Import)):
                 continue
-            result.append(o)
-
             if isinstance(o, Import):
                 self.process_imports(o.result, True, result)
+            else:
+                result.append(o)
 
 # Add message ids to each message.
 def add_msg_id(s):
@@ -764,7 +765,7 @@ def main():
     # Debug
     if args.debug:
         import pprint
-        pp = pprint.PrettyPrinter(indent=4)
+        pp = pprint.PrettyPrinter(indent=4, stream=sys.stderr)
         for t in s['Define']:
             pp.pprint([t.name, t.flags, t.block])
         for t in s['types']: