glib-compile-resources: correct resource compiler dependency for generated files

Don't require that files can be resolved when generating dependencies.

Original patch by Garret Regier.

https://bugzilla.gnome.org/show_bug.cgi?id=673101
This commit is contained in:
Georges Basile Stavracas Neto 2016-06-03 23:20:36 -03:00 committed by Colin Walters
parent 05d429af9d
commit 5411a187a3
4 changed files with 14 additions and 5 deletions

View File

@ -214,7 +214,8 @@ end_element (GMarkupParseContext *context,
else if (strcmp (element_name, "file") == 0) else if (strcmp (element_name, "file") == 0)
{ {
gchar *file, *real_file; gchar *file;
gchar *real_file = NULL;
gchar *key; gchar *key;
FileData *data = NULL; FileData *data = NULL;
char *tmp_file = NULL; char *tmp_file = NULL;
@ -241,7 +242,7 @@ end_element (GMarkupParseContext *context,
if (sourcedirs != NULL) if (sourcedirs != NULL)
{ {
real_file = find_file (file); real_file = find_file (file);
if (real_file == NULL) if (real_file == NULL && state->collect_data)
{ {
g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED, g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
_("Failed to locate '%s' in any source directory"), file); _("Failed to locate '%s' in any source directory"), file);
@ -252,15 +253,17 @@ end_element (GMarkupParseContext *context,
{ {
gboolean exists; gboolean exists;
exists = g_file_test (file, G_FILE_TEST_EXISTS); exists = g_file_test (file, G_FILE_TEST_EXISTS);
if (!exists) if (!exists && state->collect_data)
{ {
g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED, g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
_("Failed to locate '%s' in current directory"), file); _("Failed to locate '%s' in current directory"), file);
return; return;
} }
real_file = g_strdup (file);
} }
if (real_file == NULL)
real_file = g_strdup (file);
data = g_new0 (FileData, 1); data = g_new0 (FileData, 1);
data->filename = g_strdup (real_file); data->filename = g_strdup (real_file);
if (!state->collect_data) if (!state->collect_data)

View File

@ -126,6 +126,7 @@ socket-service
socket-server socket-server
srvtarget srvtarget
task task
test-generated.txt
test.gresource test.gresource
test.mo test.mo
test_resources.c test_resources.c

View File

@ -534,6 +534,10 @@ endif
glib_compile_resources=$(top_builddir)/gio/glib-compile-resources glib_compile_resources=$(top_builddir)/gio/glib-compile-resources
test-generated.txt: test1.txt
$(AM_V_GEN) echo "Generated" > $@ && \
cat $< >> $@
resources.o: test_resources2.h resources.o: test_resources2.h
test_resources.c: test2.gresource.xml Makefile $(shell $(glib_compile_resources) --sourcedir=$(srcdir) --generate-dependencies $(srcdir)/test2.gresource.xml) test_resources.c: test2.gresource.xml Makefile $(shell $(glib_compile_resources) --sourcedir=$(srcdir) --generate-dependencies $(srcdir)/test2.gresource.xml)
$(AM_V_GEN) $(glib_compile_resources) --target=$@ --sourcedir=$(srcdir) --generate-source --c-name _g_test1 $< $(AM_V_GEN) $(glib_compile_resources) --target=$@ --sourcedir=$(srcdir) --generate-source --c-name _g_test1 $<
@ -548,7 +552,7 @@ test.gresource: test.gresource.xml Makefile $(shell $(glib_compile_resources) --
$(AM_V_GEN) $(glib_compile_resources) --target=$@ --sourcedir=$(srcdir) $< $(AM_V_GEN) $(glib_compile_resources) --target=$@ --sourcedir=$(srcdir) $<
EXTRA_DIST += test.gresource.xml test1.txt test2.gresource.xml test2.txt test3.gresource.xml test3.txt test4.gresource.xml EXTRA_DIST += test.gresource.xml test1.txt test2.gresource.xml test2.txt test3.gresource.xml test3.txt test4.gresource.xml
CLEANFILES += test_resources.c test_resources2.[ch] plugin_resources.c test.gresource CLEANFILES += test-generated.txt test_resources.c test_resources2.[ch] plugin_resources.c test.gresource
endif # !CROSS_COMPILING endif # !CROSS_COMPILING
BUILT_SOURCES += giotypefuncs.c BUILT_SOURCES += giotypefuncs.c

View File

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<gresources> <gresources>
<gresource> <gresource>
<file >test-generated.txt</file>
<file compressed="true">test1.txt</file> <file compressed="true">test1.txt</file>
<file preprocess="xml-stripblanks">test.gresource.xml</file> <file preprocess="xml-stripblanks">test.gresource.xml</file>
</gresource> </gresource>