summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Griffis <tingping@tingping.se>2016-10-22 03:54:24 -0400
committerPatrick Griffis <tingping@tingping.se>2016-10-24 11:35:02 -0400
commit28e134413158d50d9a393f16bd8c82d3dd69ba22 (patch)
treea2e55bdd7f6fb11288a12f348613df1584264218
parent2ee1c7006e1bcb48b670e494050edcf0a9e3fd66 (diff)
downloadglib-28e134413158d50d9a393f16bd8c82d3dd69ba22.tar.gz
glib-compile-resources: Fix creating depfile with other targets
Follow up to 87d76a5a9c from bug 745754 https://bugzilla.gnome.org/show_bug.cgi?id=773344
-rw-r--r--gio/glib-compile-resources.c98
1 files changed, 52 insertions, 46 deletions
diff --git a/gio/glib-compile-resources.c b/gio/glib-compile-resources.c
index 05d73340d..bd5058d64 100644
--- a/gio/glib-compile-resources.c
+++ b/gio/glib-compile-resources.c
@@ -748,68 +748,74 @@ main (int argc, char **argv)
return 1;
}
- if (generate_dependencies || dependency_file != NULL)
+ /* This can be used in the same invocation
+ as other generate commands */
+ if (dependency_file != NULL)
{
+ /* Generate a .d file that describes the dependencies for
+ * build tools, gcc -M -MF style */
+ GString *dep_string;
GHashTableIter iter;
gpointer key, data;
FileData *file_data;
g_hash_table_iter_init (&iter, files);
- if (dependency_file == NULL)
+
+ dep_string = g_string_new (NULL);
+ g_string_printf (dep_string, "%s:", srcfile);
+
+ /* First rule: foo.xml: resource1 resource2.. */
+ while (g_hash_table_iter_next (&iter, &key, &data))
{
- /* Generate list of files for direct use as dependencies in a Makefile */
- while (g_hash_table_iter_next (&iter, &key, &data))
- {
- file_data = data;
- g_print ("%s\n", file_data->filename);
- }
+ file_data = data;
+ if (!g_str_equal (file_data->filename, srcfile))
+ g_string_append_printf (dep_string, " %s", file_data->filename);
}
- else
- {
- /* Generate a .d file that describes the dependencies for
- * build tools, gcc -M -MF style */
- GString *dep_string;
- dep_string = g_string_new (NULL);
- g_string_printf (dep_string, "%s:", srcfile);
+ g_string_append (dep_string, "\n\n");
- /* First rule: foo.xml: resource1 resource2.. */
- while (g_hash_table_iter_next (&iter, &key, &data))
+ /* One rule for every resource: resourceN: */
+ g_hash_table_iter_init (&iter, files);
+ while (g_hash_table_iter_next (&iter, &key, &data))
+ {
+ file_data = data;
+ if (!g_str_equal (file_data->filename, srcfile))
+ g_string_append_printf (dep_string, "%s:\n\n", file_data->filename);
+ }
+
+ if (g_str_equal (dependency_file, "-"))
+ {
+ g_print ("%s\n", dep_string->str);
+ }
+ else
+ {
+ if (!g_file_set_contents (dependency_file, dep_string->str, dep_string->len, &error))
{
- file_data = data;
- if (!g_str_equal (file_data->filename, srcfile))
- g_string_append_printf (dep_string, " %s", file_data->filename);
+ g_printerr ("Error writing dependency file: %s\n", error->message);
+ g_string_free (dep_string, TRUE);
+ g_free (dependency_file);
+ g_error_free (error);
+ return 1;
}
+ }
- g_string_append (dep_string, "\n\n");
+ g_string_free (dep_string, TRUE);
+ g_free (dependency_file);
+ }
- /* One rule for every resource: resourceN: */
- g_hash_table_iter_init (&iter, files);
- while (g_hash_table_iter_next (&iter, &key, &data))
- {
- file_data = data;
- if (!g_str_equal (file_data->filename, srcfile))
- g_string_append_printf (dep_string, "%s:\n\n", file_data->filename);
- }
+ if (generate_dependencies)
+ {
+ GHashTableIter iter;
+ gpointer key, data;
+ FileData *file_data;
- if (g_str_equal (dependency_file, "-"))
- {
- g_print ("%s\n", dep_string->str);
- }
- else
- {
- if (!g_file_set_contents (dependency_file, dep_string->str, dep_string->len, &error))
- {
- g_printerr ("Error writing dependency file: %s\n", error->message);
- g_string_free (dep_string, TRUE);
- g_free (dependency_file);
- g_error_free (error);
- return 1;
- }
- }
+ g_hash_table_iter_init (&iter, files);
- g_string_free (dep_string, TRUE);
- g_free (dependency_file);
+ /* Generate list of files for direct use as dependencies in a Makefile */
+ while (g_hash_table_iter_next (&iter, &key, &data))
+ {
+ file_data = data;
+ g_print ("%s\n", file_data->filename);
}
}
else if (generate_source || generate_header)