mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-08-19 23:28:54 +02:00
resources: compiler: Add autoselected output format
This allows simplifying the make rules. Bug #668539.
This commit is contained in:
@@ -59,6 +59,27 @@ not specified the current directory is used.
|
|||||||
</para></listitem>
|
</para></listitem>
|
||||||
</varlistentry>
|
</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>
|
<varlistentry>
|
||||||
<term><option>--generate-source</option></term>
|
<term><option>--generate-source</option></term>
|
||||||
<listitem><para>
|
<listitem><para>
|
||||||
|
@@ -490,6 +490,7 @@ main (int argc, char **argv)
|
|||||||
gchar *srcfile;
|
gchar *srcfile;
|
||||||
gchar *target = NULL;
|
gchar *target = NULL;
|
||||||
gchar *binary_target = NULL;
|
gchar *binary_target = NULL;
|
||||||
|
gboolean generate_automatic = FALSE;
|
||||||
gboolean generate_source = FALSE;
|
gboolean generate_source = FALSE;
|
||||||
gboolean generate_header = FALSE;
|
gboolean generate_header = FALSE;
|
||||||
gboolean manual_register = FALSE;
|
gboolean manual_register = FALSE;
|
||||||
@@ -500,6 +501,7 @@ main (int argc, char **argv)
|
|||||||
GOptionEntry entries[] = {
|
GOptionEntry entries[] = {
|
||||||
{ "target", 0, 0, G_OPTION_ARG_FILENAME, &target, N_("name of the output file"), N_("FILE") },
|
{ "target", 0, 0, G_OPTION_ARG_FILENAME, &target, N_("name of the output file"), N_("FILE") },
|
||||||
{ "sourcedir", 0, 0, G_OPTION_ARG_FILENAME, &sourcedir, N_("The directory where files are to be read from (default to current directory)"), N_("DIRECTORY") },
|
{ "sourcedir", 0, 0, G_OPTION_ARG_FILENAME, &sourcedir, N_("The directory where files are to be read from (default to current directory)"), N_("DIRECTORY") },
|
||||||
|
{ "generate", 0, 0, G_OPTION_ARG_NONE, &generate_automatic, N_("Generate output in the format selected for by the target filename extension"), NULL },
|
||||||
{ "generate-header", 0, 0, G_OPTION_ARG_NONE, &generate_header, N_("Generate source header"), NULL },
|
{ "generate-header", 0, 0, G_OPTION_ARG_NONE, &generate_header, N_("Generate source header"), NULL },
|
||||||
{ "generate-source", 0, 0, G_OPTION_ARG_NONE, &generate_source, N_("Generate sourcecode used to link in the resource file into your code"), NULL },
|
{ "generate-source", 0, 0, G_OPTION_ARG_NONE, &generate_source, N_("Generate sourcecode used to link in the resource file into your code"), NULL },
|
||||||
{ "generate-dependencies", 0, 0, G_OPTION_ARG_NONE, &generate_dependencies, N_("Generate dependency list"), NULL },
|
{ "generate-dependencies", 0, 0, G_OPTION_ARG_NONE, &generate_dependencies, N_("Generate dependency list"), NULL },
|
||||||
@@ -591,6 +593,15 @@ main (int argc, char **argv)
|
|||||||
g_free (dirname);
|
g_free (dirname);
|
||||||
g_free (base);
|
g_free (base);
|
||||||
}
|
}
|
||||||
|
else if (generate_automatic)
|
||||||
|
{
|
||||||
|
if (g_str_has_suffix (target, ".c"))
|
||||||
|
generate_source = TRUE;
|
||||||
|
else if (g_str_has_suffix (target, ".h"))
|
||||||
|
generate_header = TRUE;
|
||||||
|
else if (g_str_has_suffix (target, ".gresource"))
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
if ((table = parse_resource_file (srcfile, !generate_dependencies)) == NULL)
|
if ((table = parse_resource_file (srcfile, !generate_dependencies)) == NULL)
|
||||||
{
|
{
|
||||||
|
@@ -590,19 +590,16 @@ endif
|
|||||||
|
|
||||||
BUILT_SOURCES += test_resources.c test_resources2.c test_resources2.h
|
BUILT_SOURCES += test_resources.c test_resources2.c test_resources2.h
|
||||||
test_resources.c: test2.gresource.xml Makefile $(shell $(glib_compile_resources) --generate-dependencies test2.gresource.xml)
|
test_resources.c: test2.gresource.xml Makefile $(shell $(glib_compile_resources) --generate-dependencies test2.gresource.xml)
|
||||||
$(glib_compile_resources) --target=$@ --sourcedir=$(srcdir) --generate-source --c-name _g_test1 $(srcdir)/test2.gresource.xml
|
$(AM_V_GEN) $(glib_compile_resources) --target=$@ --sourcedir=$(srcdir) --generate-source --c-name _g_test1 $<
|
||||||
|
|
||||||
test_resources2.c: test3.gresource.xml Makefile $(shell $(glib_compile_resources) --generate-dependencies test3.gresource.xml)
|
test_resources2.h test_resources2.c: test3.gresource.xml Makefile $(shell $(glib_compile_resources) --generate-dependencies test3.gresource.xml)
|
||||||
$(glib_compile_resources) --target=$@ --sourcedir=$(srcdir) --generate-source --c-name _g_test2 --manual-register $(srcdir)/test3.gresource.xml
|
$(AM_V_GEN) $(glib_compile_resources) --target=$@ --sourcedir=$(srcdir) --generate --c-name _g_test2 --manual-register $<
|
||||||
|
|
||||||
test_resources2.h: test3.gresource.xml Makefile $(shell $(glib_compile_resources) --generate-dependencies test3.gresource.xml)
|
|
||||||
$(glib_compile_resources) --target=$@ --sourcedir=$(srcdir) --generate-header --c-name _g_test2 --manual-register $(srcdir)/test3.gresource.xml
|
|
||||||
|
|
||||||
plugin_resources.c: test4.gresource.xml Makefile $(shell $(glib_compile_resources) --generate-dependencies test4.gresource.xml)
|
plugin_resources.c: test4.gresource.xml Makefile $(shell $(glib_compile_resources) --generate-dependencies test4.gresource.xml)
|
||||||
$(glib_compile_resources) --target=$@ --sourcedir=$(srcdir) --generate-source --c-name _g_plugin $(srcdir)/test4.gresource.xml
|
$(AM_V_GEN) $(glib_compile_resources) --target=$@ --sourcedir=$(srcdir) --generate-source --c-name _g_plugin $<
|
||||||
|
|
||||||
test.gresource: test.gresource.xml Makefile $(shell $(glib_compile_resources) --generate-dependencies test.gresource.xml)
|
test.gresource: test.gresource.xml Makefile $(shell $(glib_compile_resources) --generate-dependencies test.gresource.xml)
|
||||||
$(glib_compile_resources) --target=$@ --sourcedir=$(srcdir) $(srcdir)/test.gresource.xml
|
$(AM_V_GEN) $(glib_compile_resources) --target=$@ --sourcedir=$(srcdir) $<
|
||||||
|
|
||||||
noinst_LTLIBRARIES = libresourceplugin.la
|
noinst_LTLIBRARIES = libresourceplugin.la
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user