From 373f953aa1a2009f05a6c1d6ee73fda21d9cabfc Mon Sep 17 00:00:00 2001
From: Peter Williams <peter@newton.cx>
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 <iconv.h>
-#endif
 #include <errno.h>
 #include <stdio.h>
 #include <string.h>
 #include <stdlib.h>
 
-#ifdef G_OS_WIN32
-#include "win_iconv.c"
-#endif
-
 #ifdef G_PLATFORM_WIN32
 #define STRICT
 #include <windows.h>
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 <glib/*.h>
   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)
