glib-compile-resources1
Glib resource compiler
Usage
glib-compile-resources [OPTION…] FILE
Overview
glib-compile-resources reads the resource description from FILE and the files that it references and creates a binary resource bundle that is suitable for use with the GResource API. The resulting bundle is then written out as-is, or as C source for linking into an application.
The XML resource files normally have the filename extension .gresource.xml. For a detailed description of the XML file format, see the GResource documentation <https://docs.gtk.org/gio/struct.Resource.html>.
Options
-
-h, --help -
Print help and exit.
-
--version -
Print program version and exit.
-
--target <TARGET> -
Store the compiled resources in the file TARGET. If not specified a filename based on the FILE basename is used.
-
--sourcedir <DIRECTORY> -
The files referenced in FILE are loaded from this directory. If not specified, the current directory is used. If
--sourcediris used more than once, the specified directories are searched in order.
-
--generate -
Write the output file in the format selected for by its filename extension:
.cC source
.hC header
.gresourceresource bundle
-
--generate-source -
Instead of a writing the resource bundle in binary form, create a C source file that contains the resource bundle. This can then be compiled into an application for easy access.
-
--generate-header -
Generate a header file for use with C code generated by
--generate-source.
-
--generate-dependencies -
Prints the list of files that the resource bundle references to standard output. This can be used to track dependencies in the build system. For example, the following make rule would mark
test.gresourceas depending on all the files thattest.gresource.xmlincludes, so that it is automatically rebuilt if any of them change:test.gresource: test.gresource.xml $(shell $(GLIB_COMPILE_RESOURCES) --generate-dependencies test.gresource.xml)
Note that this may or may not be portable to non-GNU
make.Also see
--dependency-file.
-
--c-name -
Specify the prefix used for the C identifiers in the code generated by
--generate-sourceand--generate-header.
-
--manual-register -
By default, code generated by
--generate-sourceuses automatic initialization of the resource. This works on most systems by using the compiler support for constructors. However, some (uncommon) compilers may not support this, you can then specify--manual-register, which will generate custom register and unregister functions that your code can manually call at initialization and uninitialization time.
-
--internal -
By default, code generated by
--generate-sourcedeclares all initialization functions asextern. So they are exported unless this is prevented by a link script or other means. Since libraries usually want to use the functions only internally it can be more useful to declare them asG_GNUC_INTERNALwhich is what--internaldoes.
-
--external-data -
By default, code generated by
--generate-sourceembeds the resource data as a string literal. When--external-datais given, the data is only declared in the generated C file, and the data has to be linked externally.
-
--dependency-file <FILE> -
Write dependencies in the same style as gcc -M -MF to the given file. If FILE is
-, the dependencies are written to the standard output. Unlike--generate-dependencies, this option can be combined with other--generateoptions to generate dependencies as a side-effect of generating sources.
-
--generate-phony-targets -
When creating a dependency file with
--dependency-fileinclude phony targets in the same style as gcc -MP. This would typically be used withmake.
-
--compiler <NAME> -
Generate code that is going to target the given compiler NAME. The current two compiler modes are
gcc, for all GCC-compatible toolchains; andmsvc, for the Microsoft Visual C Compiler. If this option isn’t set, then the default will be taken from the CC environment variable.
Environment
XMLLINT
The full path to the xmllint executable. This is used to preprocess resources with the xml-stripblanks preprocessing option. If this environment variable is not set, xmllint is searched for in the PATH.
GDK_PIXBUF_PIXDATA
Deprecated since gdk-pixbuf 2.32, as GResource supports embedding modern image formats without conversion.
The full path to the gdk-pixbuf-pixdata executable. This is used to preprocess resources with the to-pixdata preprocessing option. If this environment variable is not set, gdk-pixbuf-pixdata is searched for in the PATH.
JSON_GLIB_FORMAT
The full path to the json-glib-format executable. This is used to preprocess resources with the json-stripblanks preprocessing option. If this environment variable is not set, json-glib-format is searched for in the PATH.
Releases
8 releases since Debian 7 (Wheezy); the text changed 7 times.
--compiler since Debian 12 (Bookworm);
--dependency-file since Debian 9 (Stretch);
--external-data since Debian 11 (Bullseye);
--generate-phony-targets since Debian 10 (Buster);
--internal since Debian 8 (Jessie);
--version since Debian 9 (Stretch).