mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-11-06 11:08:56 +01:00
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
This commit is contained in:
@@ -748,68 +748,74 @@ main (int argc, char **argv)
|
|||||||
return 1;
|
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);
|
||||||
|
|
||||||
|
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))
|
||||||
|
{
|
||||||
|
file_data = data;
|
||||||
|
if (!g_str_equal (file_data->filename, srcfile))
|
||||||
|
g_string_append_printf (dep_string, " %s", file_data->filename);
|
||||||
|
}
|
||||||
|
|
||||||
|
g_string_append (dep_string, "\n\n");
|
||||||
|
|
||||||
|
/* 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))
|
||||||
|
{
|
||||||
|
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_free (dep_string, TRUE);
|
||||||
|
g_free (dependency_file);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (generate_dependencies)
|
||||||
{
|
{
|
||||||
GHashTableIter iter;
|
GHashTableIter iter;
|
||||||
gpointer key, data;
|
gpointer key, data;
|
||||||
FileData *file_data;
|
FileData *file_data;
|
||||||
|
|
||||||
g_hash_table_iter_init (&iter, files);
|
g_hash_table_iter_init (&iter, files);
|
||||||
if (dependency_file == NULL)
|
|
||||||
|
/* Generate list of files for direct use as dependencies in a Makefile */
|
||||||
|
while (g_hash_table_iter_next (&iter, &key, &data))
|
||||||
{
|
{
|
||||||
/* Generate list of files for direct use as dependencies in a Makefile */
|
file_data = data;
|
||||||
while (g_hash_table_iter_next (&iter, &key, &data))
|
g_print ("%s\n", file_data->filename);
|
||||||
{
|
|
||||||
file_data = data;
|
|
||||||
g_print ("%s\n", 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);
|
|
||||||
|
|
||||||
/* First rule: foo.xml: resource1 resource2.. */
|
|
||||||
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", file_data->filename);
|
|
||||||
}
|
|
||||||
|
|
||||||
g_string_append (dep_string, "\n\n");
|
|
||||||
|
|
||||||
/* 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))
|
|
||||||
{
|
|
||||||
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_free (dep_string, TRUE);
|
|
||||||
g_free (dependency_file);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (generate_source || generate_header)
|
else if (generate_source || generate_header)
|
||||||
|
|||||||
Reference in New Issue
Block a user