g-ir-scanner - Man Page

Extracting C metadata from sources and headers

Synopsis

g-ir-scanner [OPTION...] FILES...

Description

g-ir-scanner is a tool which generates GIR XML files by parsing headers and introspecting GObject based libraries. It is usually invoked during the normal build step for a project and the information is saved to disk and later installed, so that language bindings and other applications can use it. Header files and source files are passed in as arguments on the command line. The suffix determines whether a file be treated as a source file (.c) or a header file (.h). Currently only C based libraries are supported by the scanner.

Options

--help

Show help options

--quiet

If passed, do not print details of normal operation.

--warn-all

Display warnings for public API which is not introspectable.

--warn-error

Make warnings be fatal errors.

--strict

Display warnings for strict introspectable API.

--format=FORMAT

This parameters decides which the resulting format will be used. The default value is gir.

--include=NAME

Add the specified introspection dependency to the scanned namespace. NAME is of the form NAMESPACE-VERSION, like Gtk-3.0.

--include-uninstalled=PATH

Add the specified introspection dependency to the scanned namespace. This differs from --include in that it takes a file path, and does not process the pkg-config dependencies (since they may not be installed yet).

--add-include-path=PATH

Add a directory to the path which the scanner uses to find GIR files. Can be used multiple times to specify multiple directories

-i,--library=LIBRARY

Specifies a library that will be introspected. This means that the *_get_type() functions in it will be called for GObject data types. The name of the library should not contain the leading lib prefix nor the ending shared library suffix.

-L,--library-path=PATH

Include this directory when searching for a library. This option can be specified multiple times to include more than one directory to look for libraries in.

-Idirectory

Include this directory in the list of directories to be searched for header files. You need to pass to the scanner all the directories you'd normally pass to the compiler when using the specified source files.

--c-include=C_INCLUDES

Headers which should be included in C programs. This option can be specified multiple times to include more than one header.

-n,--namespace=NAME

The namespace name. This name should be capitalized, eg the first letter should be upper case. Examples: Gtk, Clutter, WebKit.

--no-libtool

Disable usage of libtool for compiling stub introspection binary. Use this if your build system does not require libtool.

--libtool

Full path to libtool executable. Typically used for Automake systems.

--nsversion=VERSION

The namespace version. For instance 1.0. This is usually the platform version, eg 2.0 for Gtk+, not 2.12.7.

-p,--program=PROGRAM

Specifies a binary that will be introspected. This means that the *_get_type() functions in it will be called for GObject data types. The binary must be modified to take a --introspect-dump= option, and to pass the argument to this function to g_irepository_dump.

--program-arg=ARG

Additional argument to pass to program for introspection.

--identifier-prefix=PREFIX

This option may be specified multiple times. Each one gives a prefix that will be stripped from all C identifiers. If none specified, the namespace will be used. Eg, an identifier prefix of Foo will export the identifier typdef struct _FooBar FooBar; as Foo.Bar.

--symbol-prefix=PREFIX

This option may be specified multiple times. Each one gives a prefix that will be stripped from all C symbols. Eg, an symbol prefix of foo will export the symbol foo_bar_do_something as Foo.Bar.do_something.

--accept-unprefixed

If specified, the scanner will accept identifiers and symbols which do not match the namespace prefix. Try to avoid using this if possible.

--output=FILENAME

Name of the file to output. Normally namespace + format extension. Eg, GLib-2.0.gir.

--pkg=PACKAGE

List of pkg-config packages to get compiler and linker flags from. This option can be specified multiple times to include flags from several pkg-config packages.

--pkg-export=PACKAGE

List of pkg-config packages that are provided by the generated gir. This option can be specified multiple times if the gir provides more packages. If not specified, the packages specified with --pkg= will be used.

--compiler=COMPILER

The C compiler to be used internally by g-ir-scanner when introspecting the run time type information, like properties, signals, ancestors, and implemented interfaces. It has the same semantics as the CC environment variable.

--verbose

Be verbose, include some debugging information.

Environment Variables

The g-ir-scanner uses the XDG_DATA_DIRS variable to check for dirs, the girs are located in XDG_DATA_DIRS/gir-1.0. It is normally set on a distribution so you shouldn't need to set it yourself.

The variable GI_SCANNER_DISABLE_CACHE ensures that the scanner will not write cache data to $HOME.

The variable GI_SCANNER_DEBUG can be used to debug issues in the build-system that involve g-ir-scanner. When it is set to save-temps, then g-ir-scanner will not remove temporary files and directories after it terminates.

The variable GI_HOST_OS can be used to control the OS name on the host that runs the scanner. It has the same semantics as the Python os.name property.

The variable GI_CROSS_LAUNCHER can be used to wrap the GType introspection binary generated by g-ir-scanner before executing it. It is useful when generating introspection data in a cross-compilation environment.

Bugs

Report bugs at https://gitlab.gnome.org/GNOME/gobject-introspection/issues

Homepage and Contact

https://gi.readthedocs.io/

Authors

Johan Dahlin

Referenced By

gi-decompile-typelib(1).