Skip to content
Commits on Source (64)
......@@ -71,7 +71,7 @@ using Ninja or the generated Visual Studio projects.
Additional notes for building and running against Python 3.8.x and later
------------------------------------------------------------------------
Python 3.8.x and later made restrictions on where DLLs are searched for third-party
modules, which will therefore affect how the Python tools in tools/ look for dependent
modules, which will therefore affect how the Python tools in ``tools/`` look for dependent
DLLs, as they rely on a C Python module, _giscanner.pyd, as the paths in %PATH% are
no longer referred to, except for system-supplied DLLs in their designated locations
on the system. In order to cope with this, DLLs are being searched for in the
......
1.70.0 - 2021-09-17
-------------------
* Update the GIR data for GLib, GObject, and GIO
1.69.0 - 2021-08-24
-------------------
* Fix build when gobject-introspection is a subproject :mr:`266`
* Add more float types :issue:`384`, :mr:`269`
* Make test suite work with cross-related options :issue:`227`
* Fix several leaks found by Coverity :mr:`272`
* Fix enum member c:identifier :mr:`264`
* Add g-ir-doc-tool man page :mr:`284`
* Export warnlib sources as variables :mr:`287`
* Update the GLib annotations :mr:`288`
* Add "final" class attribute :mr:`257`, :mr:`291`
* Add option to make .gir files installation paths configurable :mr:`63`
* Handle constructors with mismatched GTypes :issue:`399`, :mr:`292`
* Add property accessors annotations :issue:`13`, :mr:`279`
1.68.0 - 2021-03-19
-------------------
......
.\" Man page generated from reStructuredText.
.
.TH G-IR-DOC-TOOL 1 "" "" ""
.SH NAME
g-ir-doc-tool \- Documentation builder
.
.nr rst2man-indent-level 0
.
.de1 rstReportMargin
\\$1 \\n[an-margin]
level \\n[rst2man-indent-level]
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
-
\\n[rst2man-indent0]
\\n[rst2man-indent1]
\\n[rst2man-indent2]
..
.de1 INDENT
.\" .rstReportMargin pre:
. RS \\$1
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
. nr rst2man-indent-level +1
.\" .rstReportMargin post:
..
.de UNINDENT
. RE
.\" indent \\n[an-margin]
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
.nr rst2man-indent-level -1
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.SH SYNOPSIS
.sp
\fBg\-ir\-doc\-tool\fP [OPTION...] GIRFILE
.SH DESCRIPTION
.sp
g\-ir\-doc\-tool builds library documentation directly from .gir files. The output
is adjusted according to which programming language you\(aqre generating docs for.
.SH OPTIONS
.INDENT 0.0
.TP
.B \-\-help
Show help options
.TP
.BI \-\-output\fB= DIRECTORY
Save the resulting output in DIRECTORY.
.TP
.BI \-\-format\fB= FORMAT
Output format. One of devdocs, mallard or sections.
.TP
.BI \-\-language\fB= LANGUAGE
Output language. One of c, python, or gjs.
.TP
.BI \-\-add\-include\-path\fB= DIRECTORY
Adds a directory which will be used to find includes inside the GIR format.
.TP
.B \-\-version
Show program\(aqs version number and exit
.TP
.B \-\-write\-sections\-file
Backwards\-compatible equivalent to \-f sections.
.UNINDENT
.SH BUGS
.sp
Report bugs at \fI\%https://gitlab.gnome.org/GNOME/gobject\-introspection/issues\fP
.SH HOMEPAGE AND CONTACT
.sp
\fI\%https://gi.readthedocs.io/\fP
.SH AUTHORS
.sp
David King
.\" Generated by docutils manpage writer.
.
......@@ -170,6 +170,8 @@ grammar {
attribute abstract { "0" | "1" }?,
## Binary attribute to declare the class fundamental or not (top-level class which do not derives from any other type)
attribute glib:fundamental { "0" | "1" }?,
## Binary attribute to declare the class final or not (non-derivable class in a derivable hierarchy)
attribute final { "0" | "1" }?,
# Other elements a class can contain
(Info.elements
......@@ -345,6 +347,10 @@ grammar {
attribute construct { "0" | "1" }?,
## Binary attribute, true if the property can only be set upon construction
attribute construct-only { "0" | "1" }?,
## The setter function for this property
attribute setter { xsd:string }?,
## The getter function for this property
attribute getter { xsd:string }?,
# Define the transfer of ownership of the property element
TransferOwnership?,
......@@ -354,20 +360,20 @@ grammar {
}
Signal =
## A signal as defined in the GObject system (https://developer.gnome.org/gobject/stable/signal.html)
## A signal as defined in the GObject system (https://developer-old.gnome.org/gobject/stable/signal.html)
element glib:signal {
Info.attrs,
## name of the signal
attribute name { xsd:string },
## Binary attribute, true if the signal has a detailed parameter (https://developer.gnome.org/gobject/stable/signal.html#signal-detail# and https://developer.gnome.org/gobject/unstable/gobject-Signals.html#GSignalFlags)
## Binary attribute, true if the signal has a detailed parameter (https://developer-old.gnome.org/gobject/stable/signal.html#signal-detail and https://developer-old.gnome.org/gobject/stable/gobject-Signals.html#GSignalFlags)
attribute detailed { "0" | "1" }?,
## When to run the signal during the 5 steps of signal emission (https://developer.gnome.org/gobject/stable/signal.html#signal-emission and https://developer.gnome.org/gobject/unstable/gobject-Signals.html#GSignalFlags)
## When to run the signal during the 5 steps of signal emission (https://developer-old.gnome.org/gobject/stable/signal.html#signal-emission and https://developer-old.gnome.org/gobject/stable/gobject-Signals.html#GSignalFlags)
attribute when { "first" | "last" | "cleanup" }?,
## Binary attribute, true if the signal can be freely emitted on alive objects from user code (https://developer.gnome.org/gobject/unstable/gobject-Signals.html#GSignalFlags)
## Binary attribute, true if the signal can be freely emitted on alive objects from user code (https://developer-old.gnome.org/gobject/stable/gobject-Signals.html#GSignalFlags)
attribute action { "0" | "1" }?,
## Binary attribute, true if no emission hooks are supported for this signal (https://developer.gnome.org/gobject/unstable/gobject-Signals.html#GSignalFlags)
## Binary attribute, true if no emission hooks are supported for this signal (https://developer-old.gnome.org/gobject/stable/gobject-Signals.html#GSignalFlags)
attribute no-hooks { "0" | "1" }?,
## Binary attribute, true if signals emitted for an object while currently being in emission for this very object will not be emitted recursively, but instead cause the first emission to be restarted (https://developer.gnome.org/gobject/unstable/gobject-Signals.html#GSignalFlags)
## Binary attribute, true if signals emitted for an object while currently being in emission for this very object will not be emitted recursively, but instead cause the first emission to be restarted (https://developer-old.gnome.org/gobject/stable/gobject-Signals.html#GSignalFlags)
attribute no-recurse { "0" | "1" }?,
# Other elements a property can contain
......@@ -591,6 +597,11 @@ grammar {
element method {
Callable.attrs,
## The GObject property that is set by this method
attribute glib:set-property { xsd:string }?,
## The GObject property that is retrieved by this method
attribute glib:get-property { xsd:string }?,
(Info.elements
& Callable.params?
& Callable.return?)
......@@ -679,8 +690,10 @@ grammar {
attribute value { xsd:string },
## corresponding C type of the member
attribute c:identifier { xsd:string },
## short nickname of the member
## short nickname of the member (from GEnumValue/GFlagsValue)
attribute glib:nick { xsd:string }?,
## name of the member (from GEnumValue/GFlagsValue)
attribute glib:name { xsd:string }?,
Info.elements
}
......
install_man('g-ir-compiler.1', 'g-ir-generate.1', 'g-ir-scanner.1')
install_man('g-ir-compiler.1', 'g-ir-doc-tool.1', 'g-ir-generate.1', 'g-ir-scanner.1')
install_data('gir-1.2.rnc', install_dir: join_paths(get_option('datadir'), 'gir-1.0'))
if get_option('gtk_doc')
......
......@@ -11,7 +11,7 @@
<releaseinfo>
This document is for libgirepository version &version;.
The latest version of this documentation can be found on-line at
<ulink type="http" url="https://developer.gnome.org/gi/unstable/">https://developer.gnome.org/gi/unstable/</ulink>.
<ulink type="http" url="https://developer-old.gnome.org/gi/unstable/">https://developer-old.gnome.org/gi/unstable/</ulink>.
<para>
For more information on how to build libgirepository, for how to build
bindings with it and for information on GObject Introspection in
......
......@@ -248,6 +248,7 @@ GI_IS_OBJECT_INFO
GIObjectInfo
g_object_info_get_abstract
g_object_info_get_fundamental
g_object_info_get_final
g_object_info_get_parent
g_object_info_get_type_name
g_object_info_get_type_init
......@@ -300,6 +301,8 @@ GIPropertyInfo
g_property_info_get_flags
g_property_info_get_ownership_transfer
g_property_info_get_type
g_property_info_get_getter
g_property_info_get_setter
</SECTION>
<SECTION>
......
......@@ -97,6 +97,34 @@ Support for GObject objects
- This function is the invoker for a virtual method.
- :commit:`v0.6.3 <fdbe3cc3>`
:bzbug:`557383`
* - ``(set-property NAME)``
- identifier (only applies to methods)
- This function is the setter method for the given GObject property.
A setter function is defined as being the public function that is
called by the ``GObjectClass.set_property`` implementation in a
class.
- :issue:`13`
* - ``(get-property NAME)``
- identifier (only applies to methods)
- This function is the getter method for the given GObject property.
A getter function is defined as being the public function that is
called by the ``GObjectClass.get_property`` implementation in a
class.
- :issue:`13`
* - ``(setter SYMBOL)``
- identifier (only applies to properties)
- This GObject property is accessed by the given setter function.
A setter function is defined as being the public function that is
called by the ``GObjectClass.set_property`` implementation in a
class.
- :issue:`13`
* - ``(getter SYMBOL)``
- identifier (only applies to properties)
- This GObject property is accessed by the given getter function.
A getter function is defined as being the public function that is
called by the ``GObjectClass.get_property`` implementation in a
class.
- :issue:`13`
Support for GObject closures
......
......@@ -23,7 +23,7 @@ application logic such as configuration, layout, dialogs, etc.
To achieve this goal you need to write your code using GObject convention.
For more information about that, see the `GObject tutorial
<https://developer.gnome.org/gobject/stable/pt02.html>`__
<https://developer-old.gnome.org/gobject/stable/pt02.html>`__
Thus, one of the major goals of the GObject introspection project is to be a
convenient bridge between these two worlds, and allow you to choose the right
......
# update man pages
all: ../../g-ir-compiler.1 ../../g-ir-generate.1 ../../g-ir-scanner.1
all: ../../g-ir-compiler.1 ../../g-ir-doc-tool.1 ../../g-ir-generate.1 ../../g-ir-scanner.1
../../%.1:%.rst
rst2man $< > $@
......@@ -8,4 +8,4 @@ all: ../../g-ir-compiler.1 ../../g-ir-generate.1 ../../g-ir-scanner.1
.PHONY: clean
clean:
rm -f ../../g-ir-compiler.1 ../../g-ir-generate.1 ../../g-ir-scanner.1
rm -f ../../g-ir-compiler.1 ../../g-ir-doc-tool.1 ../../g-ir-generate.1 ../../g-ir-scanner.1
=============
g-ir-doc-tool
=============
---------------------
Documentation builder
---------------------
:Manual section: 1
SYNOPSIS
========
**g-ir-doc-tool** [OPTION...] GIRFILE
DESCRIPTION
===========
g-ir-doc-tool builds library documentation directly from .gir files. The output
is adjusted according to which programming language you're generating docs for.
OPTIONS
=======
--help
Show help options
--output=DIRECTORY
Save the resulting output in DIRECTORY.
--format=FORMAT
Output format. One of devdocs, mallard or sections.
--language=LANGUAGE
Output language. One of c, python, or gjs.
--add-include-path=DIRECTORY
Adds a directory which will be used to find includes inside the GIR format.
--version
Show program's version number and exit
--write-sections-file
Backwards-compatible equivalent to -f sections.
BUGS
====
Report bugs at https://gitlab.gnome.org/GNOME/gobject-introspection/issues
HOMEPAGE and CONTACT
====================
https://gi.readthedocs.io/
AUTHORS
=======
David King
......@@ -8,12 +8,16 @@ Command Line Tools
:maxdepth: 1
g-ir-compiler
g-ir-doc-tool
g-ir-generate
g-ir-scanner
:doc:`g-ir-compiler`
Typelib compiler
:doc:`g-ir-doc-tool`
Documentation builder
:doc:`g-ir-generate`
Typelib generator
......
......@@ -34,6 +34,7 @@ Bindings based on GObject-Introspection
* `PLGI <https://github.com/keriharris/plgi>`__ - Prolog bindings (runtime)
* `hbgi <https://github.com/tuffnatty/hbgi>`__ - Harbour bindings for GObject Introspection (runtime)
* `cppgir <https://www.gitlab.com/mnauw/cppgir>`__ - C++ bindings (compile time, using typelib)
* `crystal-gobject <https://github.com/jhass/crystal-gobject>`__ - gobject-introspection for Crystal (compile time)
Projects using GObject Introspection
------------------------------------
......
......@@ -10,12 +10,12 @@ Structures with custom memory management
Avoid creating C structures with custom memory management unless they are
registered as a `boxed type
<https://developer.gnome.org/gobject/unstable/gobject-Boxed-Types.html>`__.
<https://developer-old.gnome.org/gobject/stable/gobject-Boxed-Types.html>`__.
If you don't register them as a boxed type bindings will fall back to
simple memory copying, which might not be what you want.
Also consider using a full `GObject
<https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html>`__
<https://developer-old.gnome.org/gobject/stable/gobject-The-Base-Object-Type.html>`__
as that allows bindings to better integrate those objects with the binding
language, like for example preserve user defined state across language
boundaries.
......
......@@ -7,7 +7,7 @@ typelib data and for interacting with the corresponding GObject based
libraries.
For more information about libgirepository see the `API documentation
<https://developer.gnome.org/gi/stable>`__.
<https://developer-old.gnome.org/gi/stable>`__.
The following example shows how to call the ``g_assertion_message()`` function
from libglib-2.0:
......
This diff is collapsed.
This diff is collapsed.
......@@ -36,6 +36,15 @@
*/
/**
* G_MODULE_ERROR:
*
* The error domain of the #GModule API.
*
* Since: 2.70
*/
/**
* G_MODULE_EXPORT:
*
......@@ -218,22 +227,37 @@
* @file_name: (nullable): the name of the file containing the module, or %NULL
* to obtain a #GModule representing the main program itself
* @flags: the flags used for opening the module. This can be the
* logical OR of any of the #GModuleFlags.
*
* A thin wrapper function around g_module_open_full()
*
* Returns: a #GModule on success, or %NULL on failure
*/
/**
* g_module_open_full:
* @file_name: (nullable): the name of the file containing the module, or %NULL
* to obtain a #GModule representing the main program itself
* @flags: the flags used for opening the module. This can be the
* logical OR of any of the #GModuleFlags
* @error: #GError.
*
* Opens a module. If the module has already been opened,
* its reference count is incremented.
*
* First of all g_module_open() tries to open @file_name as a module.
* First of all g_module_open_full() tries to open @file_name as a module.
* If that fails and @file_name has the ".la"-suffix (and is a libtool
* archive) it tries to open the corresponding module. If that fails
* and it doesn't have the proper module suffix for the platform
* (#G_MODULE_SUFFIX), this suffix will be appended and the corresponding
* module will be opened. If that fails and @file_name doesn't have the
* ".la"-suffix, this suffix is appended and g_module_open() tries to open
* ".la"-suffix, this suffix is appended and g_module_open_full() tries to open
* the corresponding module. If eventually that fails as well, %NULL is
* returned.
*
* Returns: a #GModule on success, or %NULL on failure
* Since: 2.70
*/
......
This diff is collapsed.
......@@ -58,8 +58,12 @@ if dep_type == 'internal'
# paths, library paths, and more that we now have to handle manually when
# building with subprojects.
subprojdir = 'subprojects'
scanner_command += ['--extra-library=gio-2.0', '--extra-library=gmodule-2.0',
'--extra-library=glib-2.0', '--extra-library=gobject-2.0']
scanner_command += [
'--extra-library=glib-2.0',
'--extra-library=gmodule-2.0',
'--extra-library=gobject-2.0',
'--extra-library=gio-2.0',
]
endif
if get_option('gi_cross_binary_wrapper') != ''
......@@ -118,36 +122,65 @@ if dep_type == 'pkgconfig'
glib_files += ret.stdout().strip().split('\n')
endif
glib_includes = ['-I' + glib_incdir, '-I' + glib_libincdir]
glib_gir_dep = []
elif dep_type == 'internal'
glib_command += ['--pkg-export=glib-2.0']
# XXX: Assumes that the builddir layout is 'mirror'
glib_libdir = join_paths(meson.build_root(), subprojdir, 'glib', 'glib')
# XXX: Assumes the location of the glib subproject dir
# We should add API to meson to get a specific file from a specific subproject
glibproj_incdir = join_paths(meson.source_root(), subprojdir, 'glib')
glib_incdir = join_paths(glibproj_incdir, 'glib')
glib_libincdir = glib_libdir
glib_files += join_paths(glibproj_incdir, 'gobject', 'glib-types.h')
glib_files += join_paths(glib_libincdir, 'glibconfig.h')
if giounix_dep.found()
glib_files += join_paths(glib_incdir, 'glib-unix.h')
endif
# XXX: This is a pile of hacks to allow gobject-introspection to parse the
# GLib source files when GLib is used as a subproject
# Assumes that the builddir layout is 'mirror'
# Assumes the location of the glib subproject dir
# We should add API to meson to get a specific file from a specific
# subproject
# We know exactly what headers will be installed, so just fetch that
glib_subproject = subproject('glib')
glibproj_sourcedir = join_paths(meson.source_root(), subprojdir, 'glib')
glibproj_builddir = join_paths(meson.build_root(), subprojdir, 'glib')
glib_files += join_paths(glibproj_sourcedir, 'gobject', 'glib-types.h')
# Generated files, relative to the build directory
glib_files += [
join_paths(glibproj_builddir, 'glib', 'glibconfig.h'),
glib_subproject.get_variable('glib_enumtypes_h'),
]
if giounix_dep.found()
glib_files += [
join_paths(glibproj_sourcedir, 'glib', 'glib-unix.h'),
]
endif
glib_headers = glib_subproject.get_variable('glib_sub_headers')
glib_files += glib_subproject.get_variable('glib_sources')
# XXX: Assumes that the builddir layout is 'mirror'
gobject_libdir = join_paths(meson.build_root(), subprojdir, 'glib', 'gobject')
gmodule_libdir = join_paths(meson.build_root(), subprojdir, 'glib', 'gmodule')
gio_libdir = join_paths(meson.build_root(), subprojdir, 'glib', 'gio')
glib_libpaths = ['-L' + glib_libdir, '-L' + gobject_libdir,
'-L' + gmodule_libdir, '-L' + gio_libdir]
glib_libdir = join_paths(glibproj_builddir, 'glib')
gobject_libdir = join_paths(glibproj_builddir, 'gobject')
gmodule_libdir = join_paths(glibproj_builddir, 'gmodule')
gio_libdir = join_paths(glibproj_builddir, 'gio')
glib_libpaths = [
'-L' + glib_libdir,
'-L' + gobject_libdir,
'-L' + gmodule_libdir,
'-L' + gio_libdir,
]
# Includes that will be used to compile the scanner executable
glib_buildinc = join_paths(meson.build_root(), subprojdir, 'glib')
gmodule_incdir = join_paths(glibproj_incdir, 'gmodule')
gio_incdir = join_paths(glibproj_incdir, 'gio')
glib_includes = ['-I' + glibproj_incdir, '-I' + glib_incdir, '-I' + glib_libincdir,
'-I' + glib_buildinc, '-I' + gmodule_incdir, '-I' + gio_incdir]
glib_incdir = join_paths(glibproj_sourcedir, 'glib')
gobject_incdir = join_paths(glibproj_sourcedir, 'gobject')
gmodule_incdir = join_paths(glibproj_sourcedir, 'gmodule')
gio_incdir = join_paths(glibproj_sourcedir, 'gio')
glib_includes = [
'-I' + glibproj_sourcedir,
'-I' + glibproj_builddir,
'-I' + glib_libdir,
'-I' + glib_incdir,
'-I' + gobject_incdir,
'-I' + gmodule_incdir,
'-I' + gio_incdir,
]
# XXX: We need include paths to all glib dependencies too. We assume that the
# dependencies are only libffi and proxy-libintl, and that they are used as
# subprojects. In the worst case we add paths to non-existent directories.
......@@ -158,10 +191,15 @@ elif dep_type == 'internal'
ffi_libdir = join_paths(meson.build_root(), subprojdir, 'libffi', 'src')
intl_libdir = join_paths(meson.build_root(), subprojdir, 'proxy-libintl')
glib_libpaths = ['-L' + ffi_libdir, '-L' + intl_libdir] + glib_libpaths
glib_libpaths = [
'-L' + ffi_libdir,
'-L' + intl_libdir,
] + glib_libpaths
glib_command += ['--pkg-export=glib-2.0']
glib_command += glib_libpaths
glib_gir_dep = glib_subproject.get_variable('libglib')
else
error('Unknown glib dependency type: ' + dep_type)
endif
......@@ -178,11 +216,20 @@ endforeach
# out of date.
glib_files += files('glib-2.0.c')
gir_giscanner_pymod = []
gir_giscanner_built_files = []
if not get_option('gi_cross_use_prebuilt_gi')
# The right thing to do is just make these dependencies of the
# `configure_file` python executable, but that isn't yet supported.
gir_giscanner_pymod = giscanner_pymod
gir_giscanner_built_files = giscanner_built_files
endif
glib_gir = custom_target('gir-glib',
input: glib_files,
output: 'GLib-2.0.gir',
depends: giscanner_pymod,
depend_files: giscanner_built_files,
depends: [gir_giscanner_pymod, glib_gir_dep],
depend_files: gir_giscanner_built_files,
install: true,
install_dir: girdir,
command: glib_command + [
......@@ -222,11 +269,15 @@ if dep_type == 'pkgconfig'
endif
gobject_files += ret.stdout().strip().split('\n')
endif
gobject_gir_dep = []
else
gobject_command += ['--pkg-export=gobject-2.0']
gobject_headers = glib_subproject.get_variable('gobject_install_headers')
gobject_files += glib_subproject.get_variable('gobject_sources')
gobject_files += [
glib_subproject.get_variable('gobject_sources'),
]
gobject_command += glib_libpaths
gobject_gir_dep = glib_subproject.get_variable('libgobject')
endif
foreach h : gobject_headers
......@@ -244,8 +295,8 @@ gobject_files += files('gobject-2.0.c')
gobject_gir = custom_target('gir-gobject',
input: gobject_files,
output: 'GObject-2.0.gir',
depends: [glib_gir, giscanner_pymod],
depend_files: giscanner_built_files,
depends: [glib_gir, gir_giscanner_pymod, gobject_gir_dep],
depend_files: gir_giscanner_built_files,
install: true,
install_dir: girdir,
command: gobject_command + [
......@@ -276,11 +327,16 @@ if dep_type == 'pkgconfig'
if glib_srcdir != ''
gmodule_files += join_paths(glib_srcdir, 'gmodule', 'gmodule.c')
endif
gmodule_gir_dep = []
else
gmodule_command += ['--pkg-export=gmodule-2.0']
gmodule_command += glib_libpaths
gmodule_files += [join_paths(glibproj_incdir, 'gmodule', 'gmodule.h'),
join_paths(glibproj_incdir, 'gmodule', 'gmodule.c')]
gmodule_files += [
join_paths(glibproj_sourcedir, 'gmodule', 'gmodule.h'),
join_paths(glibproj_sourcedir, 'gmodule', 'gmodule.c'),
glib_subproject.get_variable('gmoduleconf_h'),
]
gmodule_gir_dep = glib_subproject.get_variable('libgmodule')
endif
# NOTE: Always add this last so that we prefer the annotations in the sources
......@@ -291,8 +347,8 @@ gmodule_files += files('gmodule-2.0.c')
gir_files += custom_target('gir-gmodule',
input: gmodule_files,
output: 'GModule-2.0.gir',
depends: [glib_gir, giscanner_pymod],
depend_files: giscanner_built_files,
depends: [glib_gir, gir_giscanner_pymod, gmodule_gir_dep],
depend_files: gir_giscanner_built_files,
install: true,
install_dir: girdir,
command: gmodule_command + [
......@@ -332,11 +388,17 @@ if dep_type == 'pkgconfig'
endif
gio_files += ret.stdout().strip().split('\n')
endif
gio_gir_dep = []
else
gio_command += ['--pkg-export=gio-2.0']
gio_headers = glib_subproject.get_variable('gio_headers')
gio_files += glib_subproject.get_variable('gio_sources')
gio_files += [
glib_subproject.get_variable('gio_sources'),
glib_subproject.get_variable('gioenumtypes_h'),
glib_subproject.get_variable('gnetworking_h'),
]
gio_command += glib_libpaths
gio_gir_dep = glib_subproject.get_variable('libgio')
endif
foreach h : gio_headers
......@@ -380,8 +442,8 @@ gio_files += files('gio-2.0.c')
gio_gir = custom_target('gir-gio',
input: gio_files,
output: 'Gio-2.0.gir',
depends: [gobject_gir, giscanner_pymod],
depend_files: giscanner_built_files,
depends: [gobject_gir, gir_giscanner_pymod, gio_gir_dep],
depend_files: gir_giscanner_built_files,
install: true,
install_dir: girdir,
command: gio_command + [
......@@ -417,8 +479,8 @@ endif
gir_files += custom_target('gir-girepository',
input: girepo_gir_sources,
output: 'GIRepository-2.0.gir',
depends: [gobject_gir, giscanner_pymod, girepo_lib],
depend_files: giscanner_built_files,
depends: [gobject_gir, gir_giscanner_pymod, girepo_lib],
depend_files: gir_giscanner_built_files,
install: true,
install_dir: girdir,
command: girepository_command + [
......