From 9006940de604a8d72bf9198a0e4b20cd113c4b11 Mon Sep 17 00:00:00 2001 From: Patrick Griffis Date: Mon, 24 Oct 2016 13:04:10 -0400 Subject: [PATCH] glib-compile-resources: Output depfile in same directory as target https://bugzilla.gnome.org/show_bug.cgi?id=773437 --- docs/reference/gio/glib-compile-resources.xml | 2 ++ gio/glib-compile-resources.c | 11 +++++++++++ 2 files changed, 13 insertions(+) diff --git a/docs/reference/gio/glib-compile-resources.xml b/docs/reference/gio/glib-compile-resources.xml index f5a1e6257..85ce28436 100644 --- a/docs/reference/gio/glib-compile-resources.xml +++ b/docs/reference/gio/glib-compile-resources.xml @@ -178,6 +178,8 @@ If is -, the dependencies are written to the standard output. Unlike , this option can be combined with other options to generate dependencies as a side-effect of generating sources. +If is not an absolute path and +is passed then it will be relative to the same directory as the target output. diff --git a/gio/glib-compile-resources.c b/gio/glib-compile-resources.c index 3d13b124e..ce02d1a4d 100644 --- a/gio/glib-compile-resources.c +++ b/gio/glib-compile-resources.c @@ -789,6 +789,17 @@ main (int argc, char **argv) } else { + /* Output depfile next to generated file */ + if (!g_path_is_absolute (dependency_file) && target != NULL) + { + char *targetdir = g_path_get_dirname (target); + char *tmp = dependency_file; + + dependency_file = g_build_filename (targetdir, dependency_file, NULL); + + g_free (tmp); + g_free (targetdir); + } if (!g_file_set_contents (dependency_file, dep_string->str, dep_string->len, &error)) { g_printerr ("Error writing dependency file: %s\n", error->message);