mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-03-15 20:25:12 +01:00
Add --uninstall option to glib-compile-schemas
If --uninstall is given then don't give an error if the schema directory is empty. Instead, erase the gschemas.compiled file, if it exists. This is the right thing to do in the 'make uninstall' rule, where the schema directory could very well be left empty as a result. Modify gsettings.m4 to use this option.
This commit is contained in:
parent
b59a5551ec
commit
caae8ac57a
@ -21,6 +21,7 @@
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include <gstdio.h>
|
||||
#include <locale.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
@ -638,12 +639,14 @@ main (int argc, char **argv)
|
||||
gchar *srcdir;
|
||||
gchar *targetdir = NULL;
|
||||
gchar *target;
|
||||
gboolean uninstall = FALSE;
|
||||
gboolean dry_run = FALSE;
|
||||
gchar **schema_files = NULL;
|
||||
GOptionContext *context;
|
||||
GOptionEntry entries[] = {
|
||||
{ "targetdir", 0, 0, G_OPTION_ARG_FILENAME, &targetdir, N_("where to store the gschemas.compiled file"), N_("DIRECTORY") },
|
||||
{ "dry-run", 0, 0, G_OPTION_ARG_NONE, &dry_run, N_("Do not write the gschema.compiled file"), NULL },
|
||||
{ "uninstall", 0, 0, G_OPTION_ARG_NONE, &uninstall, N_("Do not give error for empty directory"), NULL },
|
||||
{ "allow-any-name", 0, 0, G_OPTION_ARG_NONE, &allow_any_name, N_("Do not enforce key name restrictions") },
|
||||
|
||||
/* These options are only for use in the gschema-compile tests */
|
||||
@ -703,10 +706,18 @@ main (int argc, char **argv)
|
||||
}
|
||||
|
||||
if (files->len == 0)
|
||||
{
|
||||
if (uninstall)
|
||||
{
|
||||
g_unlink (target);
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
fprintf (stderr, _("No schema files found\n"));
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
g_ptr_array_add (files, NULL);
|
||||
|
||||
schema_files = (char **) g_ptr_array_free (files, FALSE);
|
||||
|
@ -59,7 +59,7 @@ uninstall-gsettings-schemas:
|
||||
test -n "$$files" || exit 0; \
|
||||
echo " ( cd '\''$(DESTDIR)$(gsettingsschemadir)'\'' && rm -f" $$files ")"; \
|
||||
cd "$(DESTDIR)$(gsettingsschemadir)" && rm -f $$files
|
||||
test -n "$(GSETTINGS_DISABLE_SCHEMAS_COMPILE)$(DESTDIR)" || $(GLIB_COMPILE_SCHEMAS) $(gsettingsschemadir)
|
||||
test -n "$(GSETTINGS_DISABLE_SCHEMAS_COMPILE)$(DESTDIR)" || $(GLIB_COMPILE_SCHEMAS) --uninstall $(gsettingsschemadir)
|
||||
|
||||
clean-gsettings-schemas:
|
||||
rm -f $(gsettings_SCHEMAS:.xml=.valid)
|
||||
|
Loading…
x
Reference in New Issue
Block a user