Previous: Generating names for CLOS classes and accessors, Up: Generating type definitions by introspection
(generate-types-hierarchy-to-file file
root-type
&key include-referenced
prefix
package
exceptions
prologue
interfaces
enums
flags
objects
exclusions
additional-properties)
Generates definitions for all types in a type hierarchy. Recursively scan types hierarchy (starting from root and objects and interfaces) (except types that were specifically excluded) and generate defintion for every mentioned type. Parameters control various aspects of definition generation.
Example of usage:
(generate-types-hierarchy-to-file
"gtk.generated-classes.lisp"
"GtkObject"
:include-referenced t
:prefix "Gtk"
:package (or (find-package :gtk) (make-package :gtk))
:exceptions `(("GObject" gobject:g-object)
("GtkObject" ,(intern "GTK-OBJECT" (find-package :gtk)))
("GInitiallyUnowned" gobject::g-initially-unowned)
("GtkWindow" ,(intern "GTK-WINDOW" (find-package :gtk)))
("GtkUIManager" ,(intern "UI-MANAGER" (find-package :gtk)))
("GtkUIManagerItemType" ,(intern "UI-MANAGER-ITEM-TYPE" (find-package :gtk))))
:prologue (format nil "(in-package :gtk)")
:interfaces '("GtkBuildable" "GtkCellEditable" ...)
:objects '("GtkSettings" "GtkRcStyle" ...)
:flags '("GtkTextSearchFlags" "GtkAccelFlags" ...)
:enums '("GtkTextDirection" "GtkSizeGroupMode" ...)
:exclusions '("PangoStretch" "PangoVariant" ...)
:additional-properties
'(("GtkTreeViewColumn"
(:cffi
gtk::tree-view
gtk::tree-view-column-tree-view
g-object
"gtk_tree_view_column_get_tree_view"
nil)
...)
...))