mirror of
				https://gitlab.gnome.org/GNOME/glib.git
				synced 2025-11-04 10:08:56 +01:00 
			
		
		
		
	Add --dependency-file=foo.d option to generate a gcc -M -MF style dependency file for other build tools. The current output of --generate-dependencies is only useful for use directly in Makefile rules, but can't be used in other build systems like that. The generated dependency file looks like this: $ glib-compile-resources --sourcedir= test.gresource.xml --dependency-file=- test.gresource.xml: test1.txt test2.txt test2.txt test1.txt: test2.txt: test2.txt: Unlike --generate-dependencies, the --dependency-file option can be used together with other --generate options to create dependencies as side-effect of generating sources. Based on a patch by Tim-Philipp Müller in https://bugzilla.gnome.org/show_bug.cgi?id=745754 The changes in this patch, compared to his are to always return the hash table with file information from parse_resource_file, so we can use it for dependency output, regardless if generate_dependencies was TRUE or not.
		
			
				
	
	
		
			206 lines
		
	
	
		
			6.6 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
			
		
		
	
	
			206 lines
		
	
	
		
			6.6 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>--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>--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>
 | 
						|
 | 
						|
</variablelist>
 | 
						|
</refsect1>
 | 
						|
 | 
						|
<refsect1><title>Environment</title>
 | 
						|
<variablelist>
 | 
						|
 | 
						|
<varlistentry>
 | 
						|
<term><envar>XMLLINT</envar></term>
 | 
						|
<listitem><para>
 | 
						|
The full path to the xmllint executable. This is used to preprocess resources
 | 
						|
with the <literal>xml-stripblanks</literal> preprocessing option. If this
 | 
						|
environment variable is not set, xmllint is searched in the
 | 
						|
<envar>PATH</envar>.
 | 
						|
</para></listitem>
 | 
						|
</varlistentry>
 | 
						|
 | 
						|
<varlistentry>
 | 
						|
<term><envar>GDK_PIXBUF_PIXDATA</envar></term>
 | 
						|
<listitem><para>
 | 
						|
The full path to the gdk-pixbuf-pixdata executable. This is used to preprocess
 | 
						|
resources with the <literal>to-pixdata</literal> preprocessing option. If this
 | 
						|
environment variable is not set, gdk-pixbuf-pixdata is searched in the
 | 
						|
<envar>PATH</envar>.
 | 
						|
</para></listitem>
 | 
						|
</varlistentry>
 | 
						|
 | 
						|
</variablelist>
 | 
						|
</refsect1>
 | 
						|
</refentry>
 |