diff --git a/docs/reference/gio/glib-compile-schemas.xml b/docs/reference/gio/glib-compile-schemas.xml
index 24b3bf5aa..0796bd744 100644
--- a/docs/reference/gio/glib-compile-schemas.xml
+++ b/docs/reference/gio/glib-compile-schemas.xml
@@ -74,6 +74,13 @@ Print help and exit
+
+
+
+Print program version and exit
+
+
+
diff --git a/gio/glib-compile-schemas.c b/gio/glib-compile-schemas.c
index 2262a3fd6..833ae6bb0 100644
--- a/gio/glib-compile-schemas.c
+++ b/gio/glib-compile-schemas.c
@@ -2025,6 +2025,7 @@ main (int argc, char **argv)
GDir *dir;
const gchar *file;
gchar *srcdir;
+ gboolean show_version_and_exit = FALSE;
gchar *targetdir = NULL;
gchar *target;
gboolean dry_run = FALSE;
@@ -2033,6 +2034,7 @@ main (int argc, char **argv)
gchar **override_files = NULL;
GOptionContext *context;
GOptionEntry entries[] = {
+ { "version", 0, 0, G_OPTION_ARG_NONE, &show_version_and_exit, N_("Show program version and exit"), NULL },
{ "targetdir", 0, 0, G_OPTION_ARG_FILENAME, &targetdir, N_("where to store the gschemas.compiled file"), N_("DIRECTORY") },
{ "strict", 0, 0, G_OPTION_ARG_NONE, &strict, N_("Abort on any errors in schemas"), NULL },
{ "dry-run", 0, 0, G_OPTION_ARG_NONE, &dry_run, N_("Do not write the gschema.compiled file"), NULL },
@@ -2079,6 +2081,12 @@ main (int argc, char **argv)
g_option_context_free (context);
+ if (show_version_and_exit)
+ {
+ g_print (PACKAGE_VERSION "\n");
+ return 0;
+ }
+
if (!schema_files && argc != 2)
{
fprintf (stderr, _("You should give exactly one directory name\n"));