mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-12-27 07:56:14 +01:00
d04b9c371d
Add option to not encode resource data into the C source file in order to embed the data using `ld -b binary`. This improves compilation times, but can only be done on Linux or other platforms with a supporting linker. (Rebased by Philip Withnall, fixing minor rebase conflicts.) Fixes #1489
242 lines
7.9 KiB
XML
242 lines
7.9 KiB
XML
<refentry id="glib-compile-resources" lang="en">
|
|
|
|
<refentryinfo>
|
|
<title>glib-compile-schemas</title>
|
|
<productname>GIO</productname>
|
|
<authorgroup>
|
|
<author>
|
|
<contrib>Developer</contrib>
|
|
<firstname>Alexander</firstname>
|
|
<surname>Larsson</surname>
|
|
</author>
|
|
</authorgroup>
|
|
</refentryinfo>
|
|
|
|
<refmeta>
|
|
<refentrytitle>glib-compile-resources</refentrytitle>
|
|
<manvolnum>1</manvolnum>
|
|
<refmiscinfo class="manual">User Commands</refmiscinfo>
|
|
</refmeta>
|
|
|
|
<refnamediv>
|
|
<refname>glib-compile-resources</refname>
|
|
<refpurpose>GLib resource compiler</refpurpose>
|
|
</refnamediv>
|
|
|
|
<refsynopsisdiv>
|
|
<cmdsynopsis>
|
|
<command>glib-compile-resources</command>
|
|
<arg choice="opt" rep="repeat">OPTION</arg>
|
|
<arg choice="req">FILE</arg>
|
|
</cmdsynopsis>
|
|
</refsynopsisdiv>
|
|
|
|
<refsect1><title>Description</title>
|
|
<para><command>glib-compile-resources</command> reads the resource description from
|
|
<replaceable>FILE</replaceable> and the files that it references
|
|
and creates a binary resource bundle that is suitable for use with the
|
|
<link linkend="GResource"><type>GResource</type></link> API.
|
|
The resulting bundle is then written out as-is, or as C source for linking into
|
|
an application.
|
|
</para>
|
|
<para>
|
|
The XML resource files normally have the filename extension <filename>.gresource.xml</filename>.
|
|
For a detailed description of the XML file format, see the
|
|
<link linkend="GResource"><type>GResource</type></link> documentation.
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1><title>Options</title>
|
|
<variablelist>
|
|
|
|
<varlistentry>
|
|
<term><option>-h</option>, <option>--help</option></term>
|
|
<listitem><para>
|
|
Print help and exit
|
|
</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><option>--version</option></term>
|
|
<listitem><para>
|
|
Print program version and exit
|
|
</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><option>--target=<replaceable>TARGET</replaceable></option></term>
|
|
<listitem><para>
|
|
Store the compiled resources in the file <replaceable>TARGET</replaceable>.
|
|
If not specified a filename based on the <replaceable>FILE</replaceable>
|
|
basename is used.
|
|
</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><option>--sourcedir=<replaceable>DIRECTORY</replaceable></option></term>
|
|
<listitem><para>
|
|
The files referenced in <replaceable>FILE</replaceable> are loaded from
|
|
this directory. If not specified, the current directory is used.
|
|
</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><option>--generate</option></term>
|
|
<listitem><para>
|
|
Write the output file in the format selected for by its filename extension:
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term><literal>.c</literal></term>
|
|
<listitem><para>C source</para></listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><literal>.h</literal></term>
|
|
<listitem><para>C header</para></listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><literal>.gresource</literal></term>
|
|
<listitem><para>resource bundle</para></listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><option>--generate-source</option></term>
|
|
<listitem><para>
|
|
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.
|
|
</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><option>--generate-header</option></term>
|
|
<listitem><para>
|
|
Generate a header file for use with C code generated by
|
|
<option>--generate-source</option>.
|
|
</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><option>--generate-dependencies</option></term>
|
|
<listitem><para>
|
|
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 <replaceable>test.gresource</replaceable> as
|
|
depending on all the files that <replaceable>test.gresource.xml</replaceable>
|
|
includes, so that is is automatically rebuilt if any of them change:
|
|
<programlisting>
|
|
test.gresource: test.gresource.xml $(shell $(GLIB_COMPILE_RESOURCES) --generate-dependencies test.gresource.xml)
|
|
</programlisting>
|
|
Note that this may or may not be portable to non-GNU <command>make</command>.
|
|
</para>
|
|
<para>
|
|
Also see <option>--dependency-file</option>.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><option>--c-name</option></term>
|
|
<listitem><para>
|
|
Specify the prefix used for the C identifiers in the code generated by
|
|
<option>--generate-source</option> and <option>--generate-header</option>.
|
|
</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><option>--manual-register</option></term>
|
|
<listitem><para>
|
|
By default code generated by <option>--generate-source</option> uses 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 <option>--manual-register</option>,
|
|
which will generate custom register and unregister functions that your code
|
|
can manually call at initialization and uninitialization time.
|
|
</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><option>--internal</option></term>
|
|
<listitem><para>
|
|
By default code generated by <option>--generate-source</option> declares all
|
|
initialization functions as <type>extern</type>. 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 as
|
|
<link linkend="G-GNUC-INTERNAL:CAPS"><literal>G_GNUC_INTERNAL</literal></link>
|
|
which is what <option>--internal</option> does.
|
|
</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><option>--external-data</option></term>
|
|
<listitem><para>
|
|
By default code generated by <option>--generate-source</option> embeds the
|
|
resource data as a string literal. When <option>--external-data</option>
|
|
is given, the data is only declared in the generated C file, and the data
|
|
has to be linked externally.
|
|
</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><option>--dependency-file=<replaceable>FILE</replaceable></option></term>
|
|
<listitem><para>
|
|
Write dependencies in the same style as gcc -M -MF to the given file.
|
|
If <option>FILE</option> is -, the dependencies are written to the standard
|
|
output. Unlike <option>--generate-dependencies</option>, this option can be
|
|
combined with other <option>--generate</option> options to generate dependencies
|
|
as a side-effect of generating sources.
|
|
</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><option>--generate-phony-targets</option></term>
|
|
<listitem><para>
|
|
When creating a dependency file with <option>--dependency-file</option>
|
|
include phony targets in the same style as gcc -MP. This would typically
|
|
be used with <literal>make</literal>.
|
|
</para></listitem>
|
|
</varlistentry>
|
|
|
|
</variablelist>
|
|
</refsect1>
|
|
|
|
<refsect1><title>Environment</title>
|
|
<variablelist>
|
|
|
|
<varlistentry>
|
|
<term><envar>XMLLINT</envar></term>
|
|
<listitem><para>
|
|
The full path to the <command>xmllint</command> executable. This is used to
|
|
preprocess resources with the <literal>xml-stripblanks</literal> preprocessing
|
|
option. If this environment variable is not set, <command>xmllint</command> is
|
|
searched for in the <envar>PATH</envar>.
|
|
</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><envar>GDK_PIXBUF_PIXDATA</envar></term>
|
|
<listitem><para>
|
|
The full path to the <command>gdk-pixbuf-pixdata</command> executable. This is
|
|
used to preprocess resources with the <literal>to-pixdata</literal> preprocessing
|
|
option. If this environment variable is not set, <command>gdk-pixbuf-pixdata</command>
|
|
is searched for in the <envar>PATH</envar>.
|
|
</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><envar>JSON_GLIB_FORMAT</envar></term>
|
|
<listitem><para>
|
|
The full path to the <command>json-glib-format</command> executable. This is used
|
|
to preprocess resources with the <literal>json-stripblanks</literal> preprocessing
|
|
option. If this environment variable is not set, <command>json-glib-format</command>
|
|
is searched for in the <envar>PATH</envar>.
|
|
</para></listitem>
|
|
</varlistentry>
|
|
|
|
</variablelist>
|
|
</refsect1>
|
|
</refentry>
|