resources: compiler: Make to-pixbuf failure fatal

Bug #669123.
This commit is contained in:
Christian Persch 2012-01-31 18:01:25 +01:00
parent 387ed239e2
commit 296a2a72c6
2 changed files with 14 additions and 7 deletions

View File

@ -302,13 +302,19 @@ end_element (GMarkupParseContext *context,
real_file = g_strdup (tmp_file);
}
if (to_pixdata && gdk_pixbuf_pixdata == NULL)
g_printerr ("GDK_PIXBUF_PIXDATA not set and gdk-pixbuf-pixdata not found in path; skipping to-pixdata preprocessing.\n");
if (to_pixdata && gdk_pixbuf_pixdata != NULL)
if (to_pixdata)
{
gchar *argv[4];
int status, fd, argc;
if (gdk_pixbuf_pixdata == NULL)
{
g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_FAILED,
"to-pixbuf preprocessing requested but GDK_PIXBUF_PIXDATA "
"not set and gdk-pixbuf-pixdata not found in path");
goto cleanup;
}
tmp_file2 = g_strdup ("resource-XXXXXXXX");
if ((fd = g_mkstemp (tmp_file2)) == -1)
{

View File

@ -68,16 +68,17 @@ G_DEFINE_BOXED_TYPE (GResource, g_resource, g_resource_ref, g_resource_unref)
* <literal>preprocess</literal> attribute to a comma-separated list of preprocessing options.
* The only options currently supported are:
*
* <literal>xml-stripblanks</literal> which will use <literal>xmllint</literal> to strip
* <literal>xml-stripblanks</literal> which will use <command>xmllint</command> to strip
* ignorable whitespace from the xml file. For this to work, the <envar>XMLLINT</envar>
* environment variable must be set to the full path to the xmllint executable, or xmllint
* must be in the PATH; otherwise the preprocessing step is skipped.
*
* <literal>to-pixdata</literal> which will use <literal>gdk-pixbuf-pixdata</literal> to convert
* <literal>to-pixdata</literal> which will use <command>gdk-pixbuf-pixdata</command> to convert
* images to the GdkPixdata format, which allows you to create pixbufs directly using the data inside
* the resource file, rather than an (uncompressed) copy if it. For this to work, the gdk-pixbuf-pixdata
* the resource file, rather than an (uncompressed) copy if it. For this, the gdk-pixbuf-pixdata
* program must be in the PATH, or the <envar>GDK_PIXBUF_PIXDATA</envar> environment variable must be
* set to the full path to the gdk-pixbuf-pixdata executable; otherwise the preprocessing step is skipped.
* set to the full path to the gdk-pixbuf-pixdata executable; otherwise the resource compiler will
* abort.
*
* Resource bundles are created by the <link linkend="glib-compile-resources">glib-compile-resources</link> program
* which takes an xml file that describes the bundle, and a set of files that the xml references. These