From e80a611fab4f7f9612258ab6e6b94d6d3e3d949f Mon Sep 17 00:00:00 2001 From: Nicola Fontana Date: Tue, 13 Jan 2015 13:32:21 +0100 Subject: [PATCH] i18n: testing cross-compilation functionality Corrected bug in GETTEXT_DOMAIN and tested result in cross-compilation under wine. --- configure.ac | 15 +++++++++++---- src/adg/adg-utils.c | 8 ++++++++ 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/configure.ac b/configure.ac index 9cc8cf6d..092aff12 100644 --- a/configure.ac +++ b/configure.ac @@ -90,9 +90,6 @@ AC_PATH_PROG([GLIB_GENMARSHAL],[glib-genmarshal],[/usr/bin/glib-genmarshal]) AC_PATH_PROG([GTESTER],[gtester],[/usr/bin/gtester]) AC_PATH_PROG([GTESTER_REPORT],[gtester-report],[/usr/bin/gtester-report]) AC_PATH_PROG([GLADE3],[glade-3],[/usr/bin/glade-3]) -AM_COND_IF([OS_WINDOWS], - [AC_PATH_PROG([MAKENSIS],[makensis],[/usr/bin/makensis]) - AC_PATH_PROG([WINE],[wine])]) # Check for libraries @@ -100,6 +97,16 @@ AM_COND_IF([OS_WINDOWS], AC_CHECK_LIB([m],[cos]) +# Cross-compilation requirements + +dnl GLib 2.16 is required by _adg_dgettext() for +dnl g_win32_get_package_installation_directory_of_module() +AM_COND_IF([OS_WINDOWS], + [AC_PATH_PROG([MAKENSIS],[makensis],[/usr/bin/makensis]) + AC_PATH_PROG([WINE],[wine]) + PKG_CHECK_MODULES([GLIB],[glib-2.0 >= 2.16])]) + + # Libtool initialization AC_MSG_CHECKING([which libtool initialization strategy to adopt]) @@ -119,7 +126,7 @@ dnl The argument is a trade-off between modern and supported. AM_GNU_GETTEXT_VERSION([0.17]) AM_GNU_GETTEXT([external]) -AC_SUBST([ADG_API_PACKAGE],AC_PACKAGE_TARNAME-adg_api_version) +AC_SUBST([ADG_API_PACKAGE],AC_PACKAGE_TARNAME) AC_SUBST([GETTEXT_PACKAGE],[${ADG_API_PACKAGE}]) AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["${ADG_API_PACKAGE}"], [Define to the domain used by gettext.]) diff --git a/src/adg/adg-utils.c b/src/adg/adg-utils.c index fca4e604..0098e3c5 100644 --- a/src/adg/adg-utils.c +++ b/src/adg/adg-utils.c @@ -263,7 +263,15 @@ _adg_dgettext(const gchar *domain, const gchar *msgid) static gboolean initialized = FALSE; if (G_UNLIKELY(!initialized)) { +#ifdef G_OS_UNIX bindtextdomain(GETTEXT_PACKAGE, LOCALEDIR); +#else + /* On windows, LOCALEDIR is relative to the installation path */ + gchar *path = g_build_filename(g_win32_get_package_installation_directory_of_module(NULL), + LOCALEDIR, NULL); + bindtextdomain(GETTEXT_PACKAGE, path); + g_free(path); +#endif bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8"); initialized = TRUE; } -- 2.11.4.GIT