diff options
author | Christoph Reiter <reiter.christoph@gmail.com> | 2019-11-09 15:26:27 +0100 |
---|---|---|
committer | Christoph Reiter <reiter.christoph@gmail.com> | 2019-11-09 16:17:54 +0100 |
commit | 3ed45723550a21d714ac34a82d20e4aa2d7f9958 (patch) | |
tree | d3440d2ca04ee6dd89374668480b2c82f9aaa178 /examples/girepository | |
parent | 2e9f0a4fc9c7f1ba4583eeb76859bbab8cd7c702 (diff) | |
download | gobject-introspection-3ed45723550a21d714ac34a82d20e4aa2d7f9958.tar.gz |
examples: Make self contained and add build system integration examples
The libgirepository example now is its own meson project.
There now is a small library that is buildable with meson and autotools
which creates a gir/typelib. Usefull for testing our build system integration
and for small experiments.
Fixes #287
Diffstat (limited to 'examples/girepository')
-rw-r--r-- | examples/girepository/glib-print.c | 48 | ||||
-rw-r--r-- | examples/girepository/meson.build | 7 |
2 files changed, 55 insertions, 0 deletions
diff --git a/examples/girepository/glib-print.c b/examples/girepository/glib-print.c new file mode 100644 index 00000000..595ae48b --- /dev/null +++ b/examples/girepository/glib-print.c @@ -0,0 +1,48 @@ +#include <girepository.h> + +int +main (void) +{ + GIRepository *repository; + GError *error = NULL; + GIBaseInfo *base_info; + GIArgument in_args[5]; + GIArgument retval; + + repository = g_irepository_get_default (); + g_irepository_require (repository, "GLib", "2.0", 0, &error); + if (error) + { + g_error ("ERROR: %s\n", error->message); + return 1; + } + + base_info = g_irepository_find_by_name (repository, "GLib", "assertion_message"); + if (!base_info) + { + g_error ("ERROR: %s\n", "Could not find GLib.warn_message"); + return 1; + } + + in_args[0].v_pointer = (gpointer)"domain"; + in_args[1].v_pointer = (gpointer)"glib-print.c"; + in_args[2].v_int = 42; + in_args[3].v_pointer = (gpointer)"main"; + in_args[4].v_pointer = (gpointer)"hello world"; + + if (!g_function_info_invoke ((GIFunctionInfo *) base_info, + (const GIArgument *) &in_args, + 5, + NULL, + 0, + &retval, + &error)) + { + g_error ("ERROR: %s\n", error->message); + return 1; + } + + g_base_info_unref (base_info); + + return 0; +} diff --git a/examples/girepository/meson.build b/examples/girepository/meson.build new file mode 100644 index 00000000..e3e0b7eb --- /dev/null +++ b/examples/girepository/meson.build @@ -0,0 +1,7 @@ +project('girepository-sample', 'c') + +girepo_dep = dependency('gobject-introspection-1.0') + +executable('glib-print', 'glib-print.c', + dependencies: girepo_dep, +) |