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)
...)
...))