Difference between revisions of "gir2pascal"

From Free Pascal wiki
(About)
(About)
Line 12: Line 12:
 
*Can create test units that help verify the conversion is correct.
 
*Can create test units that help verify the conversion is correct.
 
<p>Some limitations in generated code</p>
 
<p>Some limitations in generated code</p>
*The objects are just memory mapped to the C structs that are allocated. The pascal new and dispose functions cannot be used with them.
+
*The objects are just memory mapped to the C structs that are allocated.
 +
*The pascal new and dispose functions cannot be used with the objects.
 +
*You cannot create a noe object type that inherits the generated objects. (Technically possible if you don't add any additional fields or virtual methods)
 
*The objects created cannot wrap the c varargs methods. However the flat functions with varargs are availableas before.
 
*The objects created cannot wrap the c varargs methods. However the flat functions with varargs are availableas before.
 
gir2pascal is currently being used to generate the [[Gtk+3]] bindings for pascal.
 
gir2pascal is currently being used to generate the [[Gtk+3]] bindings for pascal.

Revision as of 16:12, 28 August 2012

About

gir2pascal is a program to convert gobject-introspection (*.gir) xml files into into pascal files which can be compiled (hopefully) without modification.

More information about gobject-introspection technology can be found here: http://live.gnome.org/GObjectIntrospection

Some of the features of gir2pascal are:

  • Converts the .gir file used as an argument into a .pas file
  • Also converts any .gir files required into .pas files.
  • GObject's are mapped to pascal objects(not classes) for easier use.
  • Creating an instance of an object is done through Foo := TSomeGObjectType.new(Parameters).
  • Can currently generate bindings for gtk3, glib2, atk1, pango1 and webkit without the resulting files needing to be modified to be compiled and linked.
  • Many other .gir files may work as well
  • Can create test units that help verify the conversion is correct.

Some limitations in generated code

  • The objects are just memory mapped to the C structs that are allocated.
  • The pascal new and dispose functions cannot be used with the objects.
  • You cannot create a noe object type that inherits the generated objects. (Technically possible if you don't add any additional fields or virtual methods)
  • The objects created cannot wrap the c varargs methods. However the flat functions with varargs are availableas before.

gir2pascal is currently being used to generate the Gtk+3 bindings for pascal.

License

GPL-2.0

Author

Andrew Haines

Email: (andrewd207 at aol dot com)

If you find this program useful you can donate with paypal here.

SVN

You can download the source from svn

 svn co https://lazarus-ccr.svn.sourceforge.net/svnroot/lazarus-ccr/applications/gobject-introspection gir2pascal

Or alternatively you can browse the source here