Difference between revisions of "gir2pascal"
From Lazarus wiki
Jump to navigationJump to searchm (→About) |
m (typos) |
||
Line 1: | Line 1: | ||
=About= | =About= | ||
− | gir2pascal is a program to convert gobject-introspection (*.gir) xml files into into | + | 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 http://live.gnome.org/GObjectIntrospection] | More information about gobject-introspection technology can be found here: [http://live.gnome.org/GObjectIntrospection http://live.gnome.org/GObjectIntrospection] | ||
Line 6: | Line 6: | ||
*Converts the .gir file used as an argument into a .pas file | *Converts the .gir file used as an argument into a .pas file | ||
*Also converts any .gir files required into .pas files. | *Also converts any .gir files required into .pas files. | ||
− | *GObject's are mapped to pascal objects(not classes) for easier use. | + | *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''). | *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. | *Can currently generate bindings for gtk3, glib2, atk1, pango1 and webkit without the resulting files needing to be modified to be compiled and linked. | ||
Line 15: | Line 15: | ||
*The pascal new and dispose functions cannot be used with the objects. | *The pascal new and dispose functions cannot be used with the objects. | ||
*You cannot create a new object type that inherits the generated objects. (Technically possible if you don't add any additional fields or virtual methods) | *You cannot create a new 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 | + | *The objects created cannot wrap the c varargs methods. However the flat functions with varargs are available as 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. | ||
=License= | =License= | ||
[http://www.opensource.org/licenses/GPL-2.0 GPL-2.0] | [http://www.opensource.org/licenses/GPL-2.0 GPL-2.0] | ||
+ | |||
=Author= | =Author= | ||
<p>Andrew Haines</p> | <p>Andrew Haines</p> |
Revision as of 16:50, 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 new 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 available as before.
gir2pascal is currently being used to generate the Gtk+3 bindings for pascal.
License
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