glib-genmarshal(1) General Commands Manual glib-genmarshal(1) (NAME) glib-genmarshal - C GObject (SYNOPSIS) glib-genmarshal [OPTION] [FILE] (DESCRIPTION) glib-genmarshal C (callback) GClosure GObject GLib . . C . glib-genmarshal . - . (MARSHALLER LIST FORMAT) . : # this is a comment : RTYPE:PTYPE RTYPE:PTYPE,PTYPE RTYPE:PTYPE,PTYPE,PTYPE RTYPE PTYPE (pointer) . (PARAMETER TYPES) : VOID . VOID . BOOLEAN (gboolean). CHAR (gchar). UCHAR (guchar). INT (gint). UINT (guint). LONG (glong). ULONG (gulong). INT64 (gint64). UINT64 (guint64). ENUM (gint). FLAGS (guint). FLOAT (gfloat). DOUBLE (gdouble). STRING (gchar*). BOXED ( ) (GBoxed*). PARAM GParamSpec (GParamSpec*). POINTER (gpointer). OBJECT GObject (GObject*). VARIANT GVariant (GVariant*). NONE VOID. BOOL BOOLEAN. (OPTIONS) --header (header) . --body . --body C . --header . --prefix . g_cclosure_user_marshal . --skip-source . --stdinc GObject glib-object.h . --nostdinc . --nostdinc GObject include glib-object.h . --stdinc . --internal G_GNUC_INTERNAL. -valist-marshallers valist g_signal_set_va_marshaller(). -v, --version . --g-fatal-warnings . -h, --help . --output FILE . --prototypes (prototypes) C missing-prototypes. --body . --pragma-once once (header guard) C. --header . --include-header
#include C. --body . -D [=] C #define SYMBOL VALUE "1" . -U . --body . -U C #undef SYMBOL . -D . --body . --quiet glib-genmarshal . --verbose . --verbose glib-genmarshal . --quiet . GLIB-GENMARSHAL MESON Meson glib-genmarshal gnome . meson.build gnome.genmarshal() : gnome = import('gnome') marshal_files = gnome.genmarshal('marshal', sources: 'marshal.list', internal: true, ) marshal_files : o (build target) o (header) : mainlib = library('project', sources: project_sources + marshal_files, ) : mainlib_dep = declare_dependency(sources: marshal_files[1], link_with: mainlib) . Meson : . Meson gnome.genmarshal() . GLIB-GENMARSHAL AUTOTOOLS glib-genmarshal Autotools configure.ac pkg-config GLib : PKG_PROG_PKG_CONFIG([0.28]) PKG_CHECK_VAR([GLIB_GENMARSHAL], [glib-2.0], [glib_genmarshal]) Makefile.am C : marshal.h: marshal.list $(AM_V_GEN)$(GLIB_GENMARSHAL) \ --header \ --output=$@ \ $< marshal.c: marshal.list marshal.h $(AM_V_GEN)$(GLIB_GENMARSHAL) \ --include-header=marshal.h \ --body \ --output=$@ \ $< BUILT_SOURCES += marshal.h marshal.c CLEANFILES += marshal.h marshal.c EXTRA_DIST += marshal.list marshal.list . marshal.list . (EXAMPLES) : void foo (gpointer data1, gpointer data2); void bar (gpointer data1, gint param1, gpointer data2); gfloat baz (gpointer data1, gboolean param1, guchar param2, gpointer data2); marshaller.list : VOID:VOID VOID:INT FLOAT:BOOLEAN,UCHAR glib-genmarshal : glib-genmarshal --header marshaller.list > marshaller.h glib-genmarshal --body marshaller.list > marshaller.c . : g_cclosure_user_marshal_VOID__VOID(...), g_cclosure_user_marshal_VOID__INT(...), g_cclosure_user_marshal_FLOAT__BOOLEAN_UCHAR(...). GClosures GSignalCMarshaller c_marshaller : GClosure *cc_foo, *cc_bar, *cc_baz; cc_foo = g_cclosure_new (NULL, foo, NULL); g_closure_set_marshal (cc_foo, g_cclosure_user_marshal_VOID__VOID); cc_bar = g_cclosure_new (NULL, bar, NULL); g_closure_set_marshal (cc_bar, g_cclosure_user_marshal_VOID__INT); cc_baz = g_cclosure_new (NULL, baz, NULL); g_closure_set_marshal (cc_baz, g_cclosure_user_marshal_FLOAT__BOOLEAN_UCHAR); (SEE ALSO) glib-mkenums(1) glib-genmarshal(1)