diff options
author | James Henstridge <james@daa.com.au> | 2001-04-21 04:25:40 +0000 |
---|---|---|
committer | James Henstridge <jamesh@src.gnome.org> | 2001-04-21 04:25:40 +0000 |
commit | 6fe397321747ac77231fe8155b4b6160a630344d (patch) | |
tree | a460d0bfbed7f03497ba92ac402af4d9eda862ac | |
parent | 1b983861bad4621ebe6fbabb4f45527cd7dd823e (diff) | |
download | pygtk-6fe397321747ac77231fe8155b4b6160a630344d.tar.gz |
install code generator and defs files. Install pygtk-codegen-1.2 script.
2001-04-21 James Henstridge <james@daa.com.au>
* generate/Makefile.am: install code generator and defs files.
Install pygtk-codegen-1.2 script.
* configure.in (AC_OUTPUT): substitute vars in pygtk-codegen-1.2.
* generate/pygtk-codegen-1.2.in: short script to call generate.py
* generate/generate.py (__main__): make generate.py callable as a
script.
-rw-r--r-- | ChangeLog | 12 | ||||
-rw-r--r-- | configure.in | 7 | ||||
-rw-r--r-- | generate/Makefile.am | 10 | ||||
-rw-r--r-- | generate/generate.py | 38 |
4 files changed, 62 insertions, 5 deletions
@@ -1,3 +1,15 @@ +2001-04-21 James Henstridge <james@daa.com.au> + + * generate/Makefile.am: install code generator and defs files. + Install pygtk-codegen-1.2 script. + + * configure.in (AC_OUTPUT): substitute vars in pygtk-codegen-1.2. + + * generate/pygtk-codegen-1.2.in: short script to call generate.py + + * generate/generate.py (__main__): make generate.py callable as a + script. + 2001-03-13 James Henstridge <james@daa.com.au> * configure.in (BUILD_PIXBUF): add configure checks for the pixbuf diff --git a/configure.in b/configure.in index 8990ad92..d921ad66 100644 --- a/configure.in +++ b/configure.in @@ -58,6 +58,11 @@ if test "x$enable_numpy" != xno; then CPPFLAGS="$save_CPPFLAGS" fi -AC_OUTPUT(Makefile generate/Makefile pyglade/Makefile) +AC_OUTPUT( +Makefile +generate/Makefile +generate/pygtk-codegen-1.2 +pyglade/Makefile +) diff --git a/generate/Makefile.am b/generate/Makefile.am index 7ccfef4f..5053ebb6 100644 --- a/generate/Makefile.am +++ b/generate/Makefile.am @@ -1,9 +1,15 @@ -noinst_PYTHON = generate.py scmexpr.py +bin_SCRIPTS = pygtk-codegen-1.2 -EXTRA_DIST = gtk.defs gtkbase.defs gtkcontainers.defs gtkdata.defs \ +codegendir = $(pkgdatadir)/1.2/codegen +codegen_PYTHON = generate.py scmexpr.py + +defsdir = $(pkgdatadir)/1.2/defs +defs_DATA = gtk.defs gtkbase.defs gtkcontainers.defs gtkdata.defs \ gtkedit.defs gtkenums.defs gtklists.defs gtkmenus.defs gtkmisc.defs \ gtkranges.defs gtkdnd.defs gtkgl.defs libglade.defs +EXTRA_DIST = $(defs_DATA) pygtk-codegen-1.2.in + all: gtk.ignore gtkgl.ignore libglade.ignore gtk.ignore: ../gtkmodule.c diff --git a/generate/generate.py b/generate/generate.py index d106e8d0..a8975e7b 100644 --- a/generate/generate.py +++ b/generate/generate.py @@ -1,3 +1,4 @@ +import sys, getopt import os import string import scmexpr @@ -178,7 +179,7 @@ class TypesParser(scmexpr.Parser): self.startParsing(scmexpr.parse(fp)) class FunctionDefsParser(TypesParser): - def __init__(self, input, prefix='gtkmodule', typeprefix=''): + def __init__(self, input, prefix='gtkmodule', typeprefix='&'): # typeprefix is set to & if type structs are not pointers TypesParser.__init__(self, input) self.impl = open(prefix + '_impl.c', "w") @@ -474,7 +475,7 @@ class FunctionDefsParser(TypesParser): class FilteringParser(FunctionDefsParser): """A refinement of FunctionDefsParser with some common filter types built in""" - def __init__(self, input, prefix='gtkmodule', typeprefix=''): + def __init__(self, input, prefix='gtkmodule', typeprefix='&'): FunctionDefsParser.__init__(self, input, prefix, typeprefix) # hash lookups are pretty fast ... self.excludeList = {} @@ -504,3 +505,36 @@ class FilteringParser(FunctionDefsParser): if glob not in self.excludeGlob: self.excludeGlob.append(glob) +if __name__ == '__main__': + opts, args = getopt.getopt(sys.argv[1:], 'd:o:h', + ['defs=', 'output-prefix=', 'exclude-file=', + 'exclude-glob', 'register=', 'help']) + defs = None + output_prefix = None + exclude_files = [] + exclude_glob = [] + for opt, arg in opts: + if opt in ('-d', '--defs'): + defs = arg + elif opt in ('-o', '--output-prefix'): + output_prefix=arg + elif opt == '--exclude-file': + exclude_files.append(arg) + elif opt == '--exclude-glob': + exclude_globs.append(arg) + elif opt == '--register': + TypesParser(arg).startParsing() + elif opt in (-h, '--help'): + sys.stderr.write('usage: generate.py -d defs file -o output-prefix\n') + sys.exit(0) + if not defs or not output_prefix: + sys.stderr.write('usage: generate.py -d defs file -o output-prefix\n') + sys.exit(1) + parser = FilteringParser(input=defs, prefix=output_prefix, + typeprefix='&') + for file in exclude_files: + parser.addExcludeFile(file) + for glob in exclude_globs: + parser.addExcludeGlob(glob) + + parser.startParsing() |