Re: signal/properties/enums/flags defs
- From: murrayc t-online de (Murray Cumming)
- To: James Henstridge <james daa com au>
- Cc: "language-bindings gnome org" <language-bindings gnome org>
- Subject: Re: signal/properties/enums/flags defs
- Date: 10 Oct 2001 18:08:01 +0200
On Wed, 2001-10-10 at 17:47, James Henstridge wrote:
> On 10 Oct 2001, Murray Cumming wrote:
>
> > On Wed, 2001-10-10 at 17:31, James Henstridge wrote:
> > > > >
> > > > > Probably the best way to structure this tool would be to put all these
> > > > > helper functions for outputing defs into a small static library, then have
> > > > > a script that scans for a list of types in a library, outputs a small
> > > > > program and links it against the helper library and the lib being scanned,
> > > > > and then runs the resulting program.
> > > >
> > > > Couldn't you just use the libary from h2defs.py?
> > >
> > > The idea is that the functions that extract the defs information would be
> > > put into a small library (say libdefsextract.a), and have a single entry
> > > point like write_defs(GType type).
> > >
> > > We then have a script (be it python, perl, sh+sed, whatever), which scans
> > > headers to find *_TYPE_* variables/macros in the headers. It writes out a
> > > small program like this (this example uses gtk):
> > > #include <gtk/gtk.h>
> > > int
> > > main()
> > > {
> > > write_defs(GTK_TYPE_OBJECT);
> > > write_defs(GTK_TYPE_WIDGET);
> > > write_defs(GTK_TYPE_WIDGET_FLAGS);
> > > ...
> > > return 0;
> > > }
> > >
> > > It would then compile this program:
> > > gcc writedefs.c -ldefsextract `pkg-config --cflags --libs gtk+-2.0` \
> > > -o writedefs
> > >
> > > And finally runs the writedefs script (then cleans up the temporary
> > > program it created).
> > >
> > > So essentially, you could just call the script, and it will scan for
> > > types, compile the program that extracts the info, and then prints it to
> > > stdout.
> > >
> >
> > I meant, can't you just call C or C++ functions from python directly?
> > Why go to the bother of creating C/C++ code, compiling it, and executing
> > it?
>
> The program needs to be linked against the library being scanned (in the
> above example, gtk+), and possibly call an initialisation function (the
> above example should have a gtk_init() call at the top).
And you can't do that within python? Surely you link to gtk+ for pygtk.
> James.
>
> --
> Email: james daa com au
> WWW: http://www.daa.com.au/~james/
>
>
>
> _______________________________________________
> language-bindings mailing list language-bindings gnome org
> http://mail.gnome.org/mailman/listinfo/language-bindings
>
>
--
Murray Cumming
murrayc usa net
www.murrayc.com
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]