2023-12-20 14:04:11 +00:00
|
|
|
|
.. _glib-compile-resources(1):
|
|
|
|
|
.. meta::
|
|
|
|
|
:copyright: Copyright 2012, 2016 Red Hat, Inc.
|
|
|
|
|
:copyright: Copyright 2012 Christian Persch
|
|
|
|
|
:copyright: Copyright 2016 Sam Thursfield
|
|
|
|
|
:copyright: Copyright 2016 Patrick Griffis
|
|
|
|
|
:copyright: Copyright 2018 Ninja-Koala
|
|
|
|
|
:copyright: Copyright 2018, 2021 Emmanuele Bassi
|
|
|
|
|
:copyright: Copyright 2020 Endless OS Foundation, LLC
|
|
|
|
|
:license: LGPL-2.1-or-later
|
|
|
|
|
..
|
|
|
|
|
This has to be duplicated from above to make it machine-readable by `reuse`:
|
|
|
|
|
SPDX-FileCopyrightText: 2012, 2016 Red Hat, Inc.
|
|
|
|
|
SPDX-FileCopyrightText: 2012 Christian Persch
|
|
|
|
|
SPDX-FileCopyrightText: 2016 Sam Thursfield
|
|
|
|
|
SPDX-FileCopyrightText: 2016 Patrick Griffis
|
|
|
|
|
SPDX-FileCopyrightText: 2018 Ninja-Koala
|
|
|
|
|
SPDX-FileCopyrightText: 2018, 2021 Emmanuele Bassi
|
|
|
|
|
SPDX-FileCopyrightText: 2020 Endless OS Foundation, LLC
|
|
|
|
|
SPDX-License-Identifier: LGPL-2.1-or-later
|
|
|
|
|
|
|
|
|
|
======================
|
|
|
|
|
glib-compile-resources
|
|
|
|
|
======================
|
|
|
|
|
|
|
|
|
|
----------------------
|
|
|
|
|
GLib resource compiler
|
|
|
|
|
----------------------
|
|
|
|
|
|
|
|
|
|
SYNOPSIS
|
|
|
|
|
--------
|
|
|
|
|
|
|
|
|
|
| **glib-compile-resources** [*OPTION*…] *FILE*
|
|
|
|
|
|
|
|
|
|
DESCRIPTION
|
|
|
|
|
-----------
|
|
|
|
|
|
|
|
|
|
``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
|
2025-03-30 09:20:19 -04:00
|
|
|
|
specified, the current directory is used. If ``--sourcedir`` is used more
|
|
|
|
|
than once, the specified directories are searched in order.
|
2023-12-20 14:04:11 +00:00
|
|
|
|
|
|
|
|
|
``--generate``
|
|
|
|
|
|
|
|
|
|
Write the output file in the format selected for by its filename extension:
|
|
|
|
|
|
|
|
|
|
``.c``
|
|
|
|
|
|
|
|
|
|
C source
|
|
|
|
|
|
|
|
|
|
``.h``
|
|
|
|
|
|
|
|
|
|
C header
|
|
|
|
|
|
|
|
|
|
``.gresource``
|
|
|
|
|
|
|
|
|
|
resource 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.gresource`` as depending on
|
|
|
|
|
all the files that ``test.gresource.xml`` includes, 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-source`` and ``--generate-header``.
|
|
|
|
|
|
|
|
|
|
``--manual-register``
|
|
|
|
|
|
|
|
|
|
By default, code generated by ``--generate-source`` 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 ``--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-source`` declares all
|
|
|
|
|
initialization functions as ``extern``. 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
|
|
|
|
|
``G_GNUC_INTERNAL`` which is what ``--internal`` does.
|
|
|
|
|
|
|
|
|
|
``--external-data``
|
|
|
|
|
|
|
|
|
|
By default, code generated by ``--generate-source`` embeds the resource data
|
|
|
|
|
as a string literal. When ``--external-data`` is 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
|
|
|
|
|
``--generate`` options to generate dependencies as a side-effect of generating
|
|
|
|
|
sources.
|
|
|
|
|
|
|
|
|
|
``--generate-phony-targets``
|
|
|
|
|
|
|
|
|
|
When creating a dependency file with ``--dependency-file`` include phony
|
|
|
|
|
targets in the same style as ``gcc -MP``. This would typically be used with
|
|
|
|
|
``make``.
|
|
|
|
|
|
|
|
|
|
``--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; and
|
|
|
|
|
``msvc``, 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
|
2025-03-30 09:20:19 -04:00
|
|
|
|
the ``PATH``.
|