| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Move out the girwriter out of generate.c. Still a private API,
but that will probably change in the future.
|
|
|
|
|
| |
Get rid of all globals in gir generator, in preparation for
moving all code into libgirepository
|
|
|
|
|
| |
Rename gtypelib.h -> gitypelib-internal.h and rename
gtypelib.c to gitypelib.c
|
|
|
|
|
| |
It's been broken for some time, remove it instead of letting
it bitrot.
|
|
|
|
| |
For GLib arrays, write out the array type to the tgir
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
People have wanted support for marking (out) on functions of the
form:
/**
* clutter_color_from_pixel:
* @pixel: A pixel
* @color: (out): Color to initialize with value of @pixel
*/
void
clutter_color_from_pixel (guint32 pixel, ClutterColor *color);
Where the caller is supposed to have allocated the argument; the
C function just initializes it. This patch adds support for this
argument passing style to introspection. In this case, we see the
(out), and notice that there's only a single indirection (*) on
the argument, and assume that this means (out caller-allocates).
https://bugzilla.gnome.org/show_bug.cgi?id=604749
|
|
|
|
|
|
|
|
| |
Foreign structs are special in the sense that there might
be native bindings (for instance PyCairo for PyGI) that provides
the same functionallity as the introspected variant.
https://bugzilla.gnome.org/show_bug.cgi?id=610357
|
| |
|
|
|
|
| |
Also suppress a bit more using @
|
|
|
|
|
|
| |
gir: embed <callback> inside <field>
typelib: if a field contains a callback, store it just after the FieldBlob
girepository API: no additions
|
|
|
|
|
| |
Looking for .git/.svn breaks in tarball scenarios; instead just see
if our source directory is named 'tools'.
|
|
|
|
| |
This lets us pick up non-default /usr/bin/python2.6 correctly.
|
| |
|
|
|
|
|
| |
This avoids having processes with the typelibs currently open exploding
immediately.
|
|
|
|
| |
Remove support for (scope object) as it lacks a real use case.
|
|
|
|
| |
and other make distcheck fixes.
|
|
|
|
|
|
|
| |
Parse the c:prefix from the .gir, include it in the header. Armed with this
information, we can now optimize lookups of GTypes because we
have the requirement that GTypes must start with the c:prefix. We do
fall back though if a lookup fails.
|
|
|
|
| |
This avoids issues with unexpanded variables, i.e. ${exec_prefix}/libdir
|
|
|
|
|
|
| |
We don't want to pollute the global namespace with our private
libraries. Also, this sidesteps all the craziness that is happening
with OS vendors changing how Python installs modules.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Broadly speaking, this change adds the concept of <vfunc> to the .gir.
The typelib already had most of the infrastructure for virtual functions,
though there is one API addition.
The scanner assumes that any class callback slot that doesn't match
a signal name is a virtual. In the .gir, we write out *both* the <method>
wrapper and a <vfunc>. If we can determine an association between
them (based on the names matching, or a new Virtual: annotation),
then we notate that in the .gir.
The typelib gains an association from the vfunc to the function, if
it exists. This will be useful for bindings since they already know
how to consume FunctionInfo.
|
|
|
|
|
|
|
|
| |
We now support an extensible mechanism where arbitrary key-value
pairs may be associated with almost all items, including objects,
methods, and properties.
These attributes appear in both the .gir and the .typelib.
|
|
|
|
|
|
|
|
|
| |
Add --all option, which is intended to show some information not
usually included in the GIR.
Currently, it shows the size of structs and unions.
Signed-off-by: Andreas Rottmann <a.rottmann@gmx.at>
|
|
|
|
|
|
|
|
| |
Similar to GObject class structs, we pair up GInterfaces with
their C structures.
Also, move some GLib-specific things into glibast.py, and make
the naming more generic.
|
|
|
|
|
| |
We keep track of the source filename for every symbol. This enables
us to later filter symbols based on that name.
|
| |
|
| |
|
|
|
|
|
| |
This option is for specifying inside the .gir what C header files should
be included by C consumers (as opposed to parsed by the scanner).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We need to reference the get_type() functions we are going to dlsym
or otherwise the linker may not include them in the introspection
binary.
giscanner/dumper.py: Accept a list of _get_type() functions
and write an array referencing them into the introspection
binary.
giscanner/glibtransformer.py: Break parsing into too stages -
the stage where we compute the _get_type() functions and the
stage where we invoke the introspection binary.
tools/g-ir-scanner: Pass _get_type() functions from the
scanner when creating the introspection binary.
http://bugzilla.gnome.org/show_bug.cgi?id=572075
|
|
|
|
|
| |
This was suggested during a refactoring of the affected code for
bug 567906.
|
|
|
|
|
|
|
|
|
|
| |
When generating a .gir file, we now first parse all of our .gir includes
to pick up their <package> headers. Then, we merge that with the set of
--pkg arguments passed to us, run pkg-config to gather the arguments,
and finally save the merged pkg-config list to our new .gir file.
This is useful for software which needs to map from .gir to pkg-config
in a programmatic way.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Inside glibtransformer, we now look at structures ending in "Class" and
see if they have an associated GlibObject (i.e. a structure of the same
name without the "Class" suffix). If found, pair them up.
The .gir file for <class> gains an attribute denoting its associated
class struct. Any <record> many now have a glib:is-class-struct-for
annotation which tells which (if any) <class> for which it defines the
layout.
In the .typelib, we record the association between the class and
its structure. Generic structures however just have a boolean
saying whether they're a class struct. (Going from a generic class
struct to its class should not be necessary).
Finally, we expose GIRepository APIs to access both bits of information
from the .typelib.
svn path=/trunk/; revision=1088
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* giscanner/scannerparser.y: Fix the "Ignoring non-UTF-8 constant
string" error to print the right value.
* tests/scanner/annotation.c (backslash_parsing_tester)
(backslash_parsing_tester_2): make these non-static to avoid a
warning.
(annotation_object_string_out)
(annotation_string_zero_terminated): fix return values
* tests/scanner/annotation.h (annotation_object_with_voidp):
prototype this
* tests/scanner/gtkfrob.c:
* tests/scanner/gtkfrob.h (gtk_frob_language_manager_get_default):
fix prototype. (s/()/(void)/).
* tools/compiler.c (format_output): fix signed/unsigned warning.
Output a prototype for register_typelib() to avoid warnings later.
svn path=/trunk/; revision=1071
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2009-01-15 Johan Dahlin <jdahlin@async.com.br>
Bug 567813 – Everything should be versioned
* gir/Makefile.am:
* girepository/Makefile.am:
* girepository/girepository.c (init_globals):
* girepository/girparser.c (locate_gir):
* giscanner/dumper.py:
* giscanner/transformer.py:
* gobject-introspection-1.0.pc.in:
* tests/everything/Makefile.am:
* tests/invoke/Makefile.am:
* tests/offsets/Makefile.am:
* tests/repository/Makefile.am:
* tests/scanner/Makefile.am:
* tools/Makefile.am:
svn path=/trunk/; revision=1046
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2009-01-12 Johan Dahlin <jdahlin@async.com.br>
Bug 563794 - Redo annotation parsing & applying
Thanks to Colin for helping out considerably in landing this.
* giscanner/Makefile.am:
* giscanner/ast.py:
* giscanner/dumper.py:
* giscanner/girparser.py:
* giscanner/giscannermodule.c (pygi_source_scanner_get_comments),
(calc_attrs_length), (pygi_collect_attributes), (init_giscanner):
* giscanner/glibtransformer.py:
* giscanner/scannerlexer.l:
* giscanner/sourcescanner.c (gi_source_symbol_unref),
(gi_source_scanner_new), (gi_source_scanner_free),
(gi_source_scanner_get_comments):
* giscanner/sourcescanner.h:
* giscanner/sourcescanner.py:
* giscanner/transformer.py:
* giscanner/xmlwriter.py:
* tests/scanner/annotation-1.0-expected.gir:
* tests/scanner/annotation-1.0-expected.tgir:
* tests/scanner/annotation.c:
* tests/scanner/annotation.h:
* tests/scanner/foo-1.0-expected.gir:
* tests/scanner/foo-1.0-expected.tgir:
* tests/scanner/foo.h:
* tools/g-ir-scanner:
This commit merges the annotation parser rewrite branch.
It'll change the annotation parsing to be done completely in python
code which will make it easier to do further annotation parsing
easier.
svn path=/trunk/; revision=1017
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2008-01-03 Andreas Rottmann <a.rottmann@gmx.at>
Bug 556489 – callback annotations
* giscanner/transformer.py
* tools/generate.c (write_callable_info): Write out the new scope,
closure and destroy attributes.
* giscanner/transformer.py (Transformer._type_is_callback): New
method, checking if a given type is a callback.
(Transformer._augment_callback_params): New method; adds
information (closure, destroy) to callback parameters.
(Transformer._handle_closure, Transformer._handle_destroy): New methods,
auxiliary to _augment_callback_params.
(Transformer._create_function): Call _augment_callback_params().
(Transformer._create_parameter): Handle scope option.
(Transformer._create_typedef_callback): New method, creates a
callback, and registers it in the typedef namespace
(Transformer._create_typedef): Use _create_typedef_callback()
instead of the plain _create_callback().
* giscanner/ast.py (Parameter): Added callback-related fields.
* giscanner/girwriter.py: Write out new Parameter fields.
* girepository/girnode.h (GIrNodeParam): Added fields scope,
closure and destroy.
* girepository/gtypelib.h (ArgBlob): Ditto.
* girepository/girparser.c (start_parameter): Handle new fields.
* girepository/girmodule.c (g_ir_module_build_typelib): Adjust
arg_blob_size, bump major version due to this change.
* girepository/girnode.c (g_ir_node_get_full_size_internal)
(g_ir_node_build_typelib)
* girepository/gtypelib.c (g_typelib_check_sanity): ArgBlob size
adjustments.
(g_ir_node_build_typelib): Fill in new ArgBlob flags from param.
* girepository/girepository.h (GIScope): New enumeration, listing
the different possible scopes for callbacks.
* girepository/ginfo.c (g_arg_info_get_scope)
(g_arg_info_get_closure, g_arg_info_get_destroy): Accessors for
callback-related argument indices (callback scope, closure for a
callback, destroy notification for a callback).
* tests/scanner/: Added testcases for new features.
svn path=/trunk/; revision=998
|
|
|
|
| |
svn path=/trunk/; revision=977
|
|
|
|
|
|
|
| |
to execute through libtool since libtool would have
created a wrapper if it was found at link time
svn path=/trunk/; revision=969
|
|
|
|
|
|
|
|
|
|
|
|
| |
2008-11-25 Johan Dahlin <jdahlin@async.com.br>
* giscanner/glibtransformer.py:
* tools/g-ir-scanner:
Execute the dumper program through libtool if it's installed,
so we avoid loading the installed version.
svn path=/trunk/; revision=964
|
|
|
|
| |
svn path=/trunk/; revision=933
|
|
|
|
| |
svn path=/trunk/; revision=912
|
|
|
|
|
|
|
|
| |
Add a toplevel GirParser object to hold state that is global across
a compilation. Currently just holds the include path, but will
eventually also keep a cached list of parsed modules.
svn path=/trunk/; revision=901
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2008-11-12 Johan Dahlin <jdahlin@async.com.br>
* gir/Makefile.am:
* giscanner/glibtransformer.py:
* tools/g-ir-scanner:
Add a GIRepository-2.0.gir. Change the libtool lookup slightly
so we can just pass in --library=foo/bar/baz.la and the scanner
does the right thing.
Don't warn for _get_type() functions if they don't take any
parameters
svn path=/trunk/; revision=890
|
|
|
|
|
|
|
|
|
|
|
| |
Field offsets are a) architecture dependent so they shouldn't be part
of the architecture-independent gir format which is installed in
datadir. b) Are architecture-dependent so they shouldn't be in test
expected output. Remove field offsets from girs.
(Virtual function and discriminator offsets are not removed, as they
aren't fully hooked up to the field-offset computation machinery yet.)
svn path=/trunk/; revision=877
|
|
|
|
|
|
| |
instead of lib
svn path=/trunk/; revision=861
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2008-10-30 Johan Dahlin <jdahlin@async.com.br>
* giscanner/girparser.py:
Remove arguments from the constructor, move them to
separate accessors. Add a new parse_tree method
which takes an element tree instance.
* tools/g-ir-scanner:
Update callsite for this
* giscanner/Makefile.am:
* giscanner/cachestore.py:
* giscanner/transformer.py:
Cache the include parsing. Saves ~25% time when
creating vte (which includes everything up to gtk+).
svn path=/trunk/; revision=842
|
|
|
|
| |
svn path=/trunk/; revision=839
|
|
|
|
|
|
|
|
|
| |
2008-10-28 Johan Bilien <jobi@via.ecp.fr>
* tools/g-ir-scanner: add LD_LIBRARY_PATH to LPATH before calling ld.
svn path=/trunk/; revision=822
|
|
|
|
| |
svn path=/trunk/; revision=814
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2008-10-23 Tommi Komulainen <tommi.komulainen@iki.fi>
* girepository/girparser.c (parse_param_transfer):
* giscanner/transformer.py (_create_parameter, _create_return):
* giscanner/girwriter.py (_write_return, _write_parameter):
* tools/generate.c (write_callable_info): always write and
require "transfer-ownership" for return-values and parameters
* tests/boxed.gir:
* tests/invoke/testfns-1.0.gir:
* tests/object.gir:
* tests/scanner/DrawableAdditions.xml:
* tests/scanner/GtkFrob-1.0-expected.tgir:
* tests/scanner/annotation-1.0-expected.tgir:
* tests/scanner/drawable-1.0-expected.tgir:
* tests/scanner/drawable-injected-1.0-expected.gir:
* tests/scanner/drawable-injected-1.0-expected.tgir:
* tests/scanner/foo-1.0-expected.tgir: Updated
svn path=/trunk/; revision=797
|
|
|
|
|
|
|
|
|
|
|
|
| |
2008-10-22 Tommi Komulainen <tommi.komulainen@iki.fi>
* tests/scanner/drawable-1.0-expected.tgir:
* tests/scanner/drawable-injected-1.0-expected.tgir:
* tests/scanner/foo-1.0-expected.tgir:
* tools/generate.c (write_object_info): write 'abstract'
attribute for classes
svn path=/trunk/; revision=785
|