From 552b815365649521379c60b672f608a40a8a5f44 Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Wed, 1 Feb 2012 18:44:15 +0200 Subject: [PATCH] gio: Convert data-to-c.c to perl Helper scripts in C can be problematic for cross compiling: the compiler produces executables for the target platform, which the host is usually unable to run. https://bugzilla.gnome.org/show_bug.cgi?id=669224 --- gio/Makefile.am | 10 +++------- gio/data-to-c.c | 51 --------------------------------------------------- gio/data-to-c.pl | 39 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 42 insertions(+), 58 deletions(-) delete mode 100644 gio/data-to-c.c create mode 100755 gio/data-to-c.pl diff --git a/gio/Makefile.am b/gio/Makefile.am index d9227b9..67eeae6 100644 --- a/gio/Makefile.am +++ b/gio/Makefile.am @@ -8,11 +8,6 @@ if OS_UNIX SUBDIRS += xdgmime endif -noinst_PROGRAMS = data-to-c - -data_to_c_SOURCES = data-to-c.c -data_to_c_LDADD = $(top_builddir)/glib/libglib-2.0.la - if OS_WIN32_AND_DLL_COMPILATION if MS_LIB_AVAILABLE noinst_DATA = gio-2.0.lib @@ -612,6 +607,7 @@ BUILT_SOURCES = \ $(NULL) EXTRA_DIST += \ + data-to-c.pl \ gio.symbols \ gioenumtypes.h.template \ gioenumtypes.c.template \ @@ -666,8 +662,8 @@ gio_querymodules_LDADD = \ libgio-2.0.la \ $(NULL) -gconstructor_as_data.h: $(top_srcdir)/glib/gconstructor.h data-to-c$(EXEEXT) - $(AM_V_GEN) $(builddir)/data-to-c $(top_srcdir)/glib/gconstructor.h gconstructor_code > $@ +gconstructor_as_data.h: $(top_srcdir)/glib/gconstructor.h data-to-c.pl + $(AM_V_GEN) $(srcdir)/data-to-c.pl $(top_srcdir)/glib/gconstructor.h gconstructor_code > $@.tmp && mv $@.tmp $@ glib_compile_schemas_LDADD = $(top_builddir)/glib/libglib-2.0.la glib_compile_schemas_SOURCES = \ diff --git a/gio/data-to-c.c b/gio/data-to-c.c deleted file mode 100644 index 9dcf286..0000000 --- a/gio/data-to-c.c +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright © 2011 Red Hat, Inc - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the licence, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Author: Alexander Larsson - */ - - #include - -int -main (int argc, char **argv) -{ - char *content; - int i; - GError *error = NULL; - - if (argc != 3) - { - g_printerr ("Usage: data-to-c "); - return 1; - } - - if (!g_file_get_contents (argv[1], &content, NULL, &error)) - { - g_printerr ("%s", error->message); - return 1; - } - - g_print ("const char %s[] = \"", argv[2]); - - for (i = 0; content[i] != 0; i++) { - g_print ("\\x%02x", (int)content[i]); - } - - g_print ("\";\n"); - return 0; -} diff --git a/gio/data-to-c.pl b/gio/data-to-c.pl new file mode 100755 index 0000000..20ba2fb --- /dev/null +++ b/gio/data-to-c.pl @@ -0,0 +1,39 @@ +#!/usr/bin/perl + +# Copyright © 2011 Red Hat, Inc +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2 of the licence, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the +# Free Software Foundation, Inc., 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. +# +# Author: Kalev Lember + + +if (@ARGV != 2) { + die "Usage: data-to-c.pl \n"; +} + +$file = $ARGV[0]; + +open (FILE, $file) || die "Cannot open $file: $!\n"; + +printf ("const char %s[] = \"", $ARGV[1]); +while (my $line = ) { + foreach my $c (split //, $line) { + printf ("\\x%02x", ord ($c)); + } +} +print "\";\n"; + +close (FILE); -- 2.7.4