summaryrefslogtreecommitdiff
path: root/tools
Commit message (Collapse)AuthorAgeFilesLines
* Switch to nonrecursive make for core (i.e. not tests/)Colin Walters2010-11-091-35/+0
| | | | | This is cleaner and faster, and prepares us better for an incoming import of CMPH.
* tools: Switch to checking UNINSTALLED_INTROSPECTION_SRCDIRColin Walters2010-11-092-10/+6
| | | | | | | | | Rather than introspecting the current directory, use the environment variable we know is present if and only if we're running uninstalled. This will be less prone to failure when we switch to nonrecursive make, since the generated script will be in the top builddir, not tools/ anymore.
* Add an annotation toolJohan Dahlin2010-09-242-3/+52
|
* scanner: Add various static debug hooks in GI_SCANNER_DEBUGColin Walters2010-09-071-1/+2
| | | | | | | For backwards compat, keep the presence of the environment variable at all to mean "exception". Also start a HACKING file.
* [GIRepository] Rename GTypelib to GITypelibJohan Dahlin2010-08-312-3/+3
| | | | | Keep a typedef for backwards compatibility, until the major bindings has moved over.
* scanner: If GI_SCANNER_DEBUG is set, drop into a debugger on errorColin Walters2010-08-311-0/+6
| | | | | Useful when debugging build problems for both me, and potentially over IRC.
* [gircompiler] Clean up parsingColin Walters2010-08-171-40/+10
| | | | | | | | | | | | | | We never actually include multiple modules in the compiler, so just nuke that. Also rather than passing around GIrModule consistently pass around a GIrTypelibBuild structure which has various things. This lets us maintain a stack there which we can walk for better error messages. Also, fix up the node lookup in giroffsets.c; previously it didn't really handle includes correctly. We really need to switch to always using Foo.Bar (i.e. GIName) names internally...
* compiler: Remove --code argumentColin Walters2010-08-171-67/+6
| | | | | | It can't really work right now because we rely on dumping data at runtime, which requires the library. If in the future we support static scanning, we can reinvestigate embedded typelibs.
* Fix two compilation warningsColin Walters2010-07-191-1/+0
|
* [girepository] Actually verify header of loaded typelibs in ↵Colin Walters2010-07-142-84/+16
| | | | | | | | g_irepository_require Take a GError * for typelib loading code, validate the header. This fixes bizarre errors from gjs where g_irepository_require would happily load old typelibs.
* [girwriter] Refactor out of generate.cJohan Dahlin2010-06-072-1364/+6
| | | | | Move out the girwriter out of generate.c. Still a private API, but that will probably change in the future.
* [generate] Get rid of globalsJohan Dahlin2010-06-071-19/+20
| | | | | Get rid of all globals in gir generator, in preparation for moving all code into libgirepository
* [gtypelib.ch] Rename to gitypelib.chJohan Dahlin2010-05-312-2/+2
| | | | | Rename gtypelib.h -> gitypelib-internal.h and rename gtypelib.c to gitypelib.c
* [build] Remove gcov supportJohan Dahlin2010-05-281-2/+0
| | | | | It's been broken for some time, remove it instead of letting it bitrot.
* [g-ir-generate] Write out array typeJohan Dahlin2010-05-271-0/+20
| | | | For GLib arrays, write out the array type to the tgir
* Support (out caller-allocates)Colin Walters2010-05-261-4/+2
| | | | | | | | | | | | | | | | | | | | | 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
* Add support for foreign structsJohan Dahlin2010-03-251-0/+5
| | | | | | | | 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
* Remove trailing whitespaceJohan Dahlin2010-03-251-89/+90
|
* Use AM_V_GEN more a more quiet buildJohan Dahlin2009-12-311-2/+2
| | | | Also suppress a bit more using @
* Implement callbacks as part of struct fields. Fixes #557383Tomeu Vizoso2009-11-111-2/+16
| | | | | | gir: embed <callback> inside <field> typelib: if a field contains a callback, store it just after the FieldBlob girepository API: no additions
* Bug 593162 - Use built scanner from tarball buildsColin Walters2009-09-041-4/+3
| | | | | Looking for .git/.svn breaks in tarball scenarios; instead just see if our source directory is named 'tools'.
* Bug 578200 - Substitute $(PYTHON) in g-ir-scanner.inColin Walters2009-08-242-2/+2
| | | | This lets us pick up non-default /usr/bin/python2.6 correctly.
* Bug 585584: Fix warnings in girparser backtrace functionality and compiler.cC. Scott Ananian2009-06-121-0/+2
|
* Bug 577534 - Use rename to write new typelibs, instead of in-place overwriteColin Walters2009-06-091-11/+27
| | | | | This avoids having processes with the typelibs currently open exploding immediately.
* Bug 576605 - Get rid of GI_SCOPE_TYPE_OBJECTAndreas Rottmann2009-03-271-3/+0
| | | | Remove support for (scope object) as it lacks a real use case.
* Include g-ir-scanner.in in the distributionJohan Bilien2009-03-241-1/+3
| | | | and other make distcheck fixes.
* Bug 564016 - Include c:prefix in typelib, use it to optimize find_by_gtypeColin Walters2009-03-171-0/+4
| | | | | | | 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.
* Substitute g-ir-scanner in Makefile, not in configure.acColin Walters2009-03-161-0/+4
| | | | This avoids issues with unexpanded variables, i.e. ${exec_prefix}/libdir
* Bug 574501 - Install giscanner Python module to private directoryColin Walters2009-03-162-360/+39
| | | | | | 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.
* Bug 557383 - Virtual method supportColin Walters2009-03-051-2/+7
| | | | | | | | | | | | | | | | 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.
* Bug 571548 - Generic attributesColin Walters2009-03-031-4/+38
| | | | | | | | 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 to g-ir-generateAndreas Rottmann2009-02-271-1/+18
| | | | | | | | | 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>
* Bug 572434 - Associate interfaces with their C structuresColin Walters2009-02-251-5/+13
| | | | | | | | 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.
* Bug 572790 - Don't register #defines from .c files as constantsColin Walters2009-02-241-1/+3
| | | | | We keep track of the source filename for every symbol. This enables us to later filter symbols based on that name.
* Handle the return value to fwrite properlyJohan Dahlin2009-02-211-1/+9
|
* Be less verboseJohan Dahlin2009-02-201-3/+0
|
* Bug 572423 - Support --c-include argument for specifying C headersColin Walters2009-02-201-1/+4
| | | | | 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).
* Bug 572075 - Make the scanner work with static and convenience librariesOwen W. Taylor2009-02-191-5/+11
| | | | | | | | | | | | | | | | | 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
* Followup to bug 567906 - Redo option filtering logic to be a bit cleanerColin Walters2009-02-171-10/+11
| | | | | This was suggested during a refactoring of the affected code for bug 567906.
* Bug 567906 - Put pkg-config dependencies in .gir filesColin Walters2009-02-111-39/+56
| | | | | | | | | | 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.
* Bug 551738 - Associate classes with their structsColin Walters2009-02-061-0/+13
| | | | | | | | | | | | | | | | | | | | | 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
* Misc warning fixesDan Winship2009-01-271-1/+4
| | | | | | | | | | | | | | | | | | | | | | | * 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
* Bug 567813 – Everything should be versionedJohan Dahlin2009-01-151-2/+2
| | | | | | | | | | | | | | | | | | | | | | | 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
* Bug 563794 - Redo annotation parsing & applyingJohan Dahlin2009-01-121-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Bug 556489 – callback annotationsAndreas Rottmann2009-01-031-0/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Add --libtool option which we expect Automake-using people to passColin Walters2008-11-261-0/+3
| | | | svn path=/trunk/; revision=977
* Revert earlier libtool change, there's no needJohan Dahlin2008-11-251-2/+1
| | | | | | | to execute through libtool since libtool would have created a wrapper if it was found at link time svn path=/trunk/; revision=969
* Execute the dumper program through libtool if it's installed, so we avoidJohan Dahlin2008-11-251-1/+3
| | | | | | | | | | | | 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
* Also generate new syntaxColin Walters2008-11-171-8/+3
| | | | svn path=/trunk/; revision=933
* Bug 558436 - avoid having scanner load app codeColin Walters2008-11-131-9/+23
| | | | svn path=/trunk/; revision=912