From 373f953aa1a2009f05a6c1d6ee73fda21d9cabfc Mon Sep 17 00:00:00 2001 From: Peter Williams Date: Mon, 3 Sep 2018 22:27:48 -0400 Subject: [PATCH 1/2] Manually link with libiconv whenever we use libintl. Sadly our Windows libintl DLL doesn't convey that it should pull in libiconv as a dependency (nor does it use pkg-config). Until I figure that out, let's just manually link with libintl when needed. There is also some hacking of gconvert.c and the toplevel meson.build file needed to adjust the build system -- it assumes that on Windows you're always going to use an internal iconv. --- diff --git a/glib/gconvert.c b/glib/gconvert.c index 5028647..f685a06 100644 --- a/glib/gconvert.c +++ b/glib/gconvert.c @@ -21,18 +21,12 @@ #include "config.h" #include "glibconfig.h" -#ifndef G_OS_WIN32 #include -#endif #include #include #include #include -#ifdef G_OS_WIN32 -#include "win_iconv.c" -#endif - #ifdef G_PLATFORM_WIN32 #define STRICT #include diff --git a/meson.build b/meson.build index 0cc6e94..f256075 100644 --- a/meson.build +++ b/meson.build @@ -1673,7 +1673,7 @@ glibconfig_conf.set10('G_HAVE_GROWING_STACK', growing_stack) # GNU implementation that ships with MinGW. # On Windows, just always use the built-in implementation -if host_system == 'windows' +if host_system == 'IGNOREME windows' libiconv = [] glib_conf.set('USE_LIBICONV_NATIVE', true) else diff --git a/glib/meson.build b/glib/meson.build index 6fc56da..66db78c 100644 --- a/glib/meson.build +++ b/glib/meson.build @@ -268,11 +268,11 @@ libglib_dep = declare_dependency( link_with : libglib, # thread_dep doesn't get pulled in from libglib atm, # see https://github.com/mesonbuild/meson/issues/1426 - dependencies : [thread_dep, libintl], + dependencies : [thread_dep, libintl] + libiconv, # We sadly need to export configinc here because everyone includes include_directories : [configinc, glibinc]) -pkg.generate(libraries : [libglib, libintl], +pkg.generate(libraries : [libglib, libintl] + libiconv, libraries_private : [osx_ldflags, win32_ldflags], subdirs : ['glib-2.0'], extra_cflags : ['-I${libdir}/glib-2.0/include'] + win32_cflags, diff --git a/gio/win32/meson.build b/gio/win32/meson.build index c1841cb..dc84cca 100644 --- a/gio/win32/meson.build +++ b/gio/win32/meson.build @@ -10,6 +10,6 @@ giowin32_sources = [ giowin32_lib = static_library('giowin32', sources : [giowin32_sources, gioenumtypes_h], include_directories : [configinc, glibinc, gioinc, gmoduleinc], - dependencies : [libintl], + dependencies : [libintl] + libiconv, pic : true, c_args : [ '-DG_DISABLE_DEPRECATED' ] + gio_c_args)