[glib] meson: build Windows resource files



commit aa7c5cbdcbe8b22f019c29668bcbe57d53f9866d
Author: Christoph Reiter <reiter christoph gmail com>
Date:   Thu Dec 14 13:32:56 2017 +0100

    meson: build Windows resource files
    
    configure_file() forces utf-8 atm but .rc files are not utf-8.
    To work around the issue just remove the only non-ASCII char.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=784995

 gio/gio.rc.in         |    2 +-
 gio/meson.build       |   16 ++++++++--------
 glib/glib.rc.in       |    2 +-
 glib/meson.build      |    7 +++++++
 gmodule/gmodule.rc.in |    2 +-
 gmodule/meson.build   |   13 ++++++++++++-
 gobject/gobject.rc.in |    2 +-
 gobject/meson.build   |   10 ++++++++++
 gthread/gthread.rc.in |    2 +-
 gthread/meson.build   |   14 +++++++++++++-
 meson.build           |    2 ++
 11 files changed, 57 insertions(+), 15 deletions(-)
---
diff --git a/gio/gio.rc.in b/gio/gio.rc.in
index cfaa42d..3b19b3e 100644
--- a/gio/gio.rc.in
+++ b/gio/gio.rc.in
@@ -17,7 +17,7 @@ VS_VERSION_INFO VERSIONINFO
        VALUE "FileDescription", "Gio"
        VALUE "FileVersion", "@GLIB_VERSION@.0"
        VALUE "InternalName", "libgio-2.0-@LT_CURRENT_MINUS_AGE@"
-       VALUE "LegalCopyright", "Copyright � 2006-2011 Red Hat, Inc. and others."
+       VALUE "LegalCopyright", "Copyright 2006-2011 Red Hat, Inc. and others."
        VALUE "OriginalFilename", "libgio-2.0-@LT_CURRENT_MINUS_AGE@.dll"
        VALUE "ProductName", "GLib"
        VALUE "ProductVersion", "@GLIB_VERSION@"
diff --git a/gio/meson.build b/gio/meson.build
index 61a79d4..51dc4cf 100644
--- a/gio/meson.build
+++ b/gio/meson.build
@@ -390,6 +390,14 @@ else
     'gwin32outputstream.c',
   )
 
+  gio_win_rc = configure_file(
+    input: 'gio.rc.in',
+    output: 'gio.rc',
+    configuration: glibconfig_conf,
+  )
+  gio_win_res = windows.compile_resources(gio_win_rc)
+  win32_sources += [gio_win_res]
+
   gio_win32_include_headers = files(
     'gwin32inputstream.h',
     'gwin32outputstream.h',
@@ -529,14 +537,6 @@ gio_sources += portal_sources
 gio_sources += local_sources
 
 MISSING_STUFF = '''
-if OS_WIN32_AND_DLL_COMPILATION
-gio_win32_res = gio-win32-res.o
-gio_win32_res_ldflag = -Wl,$(gio_win32_res)
-endif
-
-gio-win32-res.o: gio.rc
-  '$(WINDRES) gio.rc $@
-
 # This is read by gobject-introspection/misc/ and gtk-doc
 gio-public-headers.txt: Makefile
   '$(AM_V_GEN) echo $(gioinclude_HEADERS) $(giowin32include_HEADERS) $(giounixinclude_HEADERS) > $@.tmp && 
mv $@.tmp $@
diff --git a/glib/glib.rc.in b/glib/glib.rc.in
index a476718..c69f644 100644
--- a/glib/glib.rc.in
+++ b/glib/glib.rc.in
@@ -17,7 +17,7 @@ VS_VERSION_INFO VERSIONINFO
        VALUE "FileDescription", "GLib"
        VALUE "FileVersion", "@GLIB_VERSION@.0"
        VALUE "InternalName", "libglib-2.0-@LT_CURRENT_MINUS_AGE@"
-       VALUE "LegalCopyright", "Copyright � 1995-2011 Peter Mattis, Spencer Kimball, Josh MacDonald and 
others."
+       VALUE "LegalCopyright", "Copyright 1995-2011 Peter Mattis, Spencer Kimball, Josh MacDonald and 
others."
        VALUE "OriginalFilename", "libglib-2.0-@LT_CURRENT_MINUS_AGE@.dll"
        VALUE "ProductName", "GLib"
        VALUE "ProductVersion", "@GLIB_VERSION@"
diff --git a/glib/meson.build b/glib/meson.build
index d1d0ab4..2b3790c 100644
--- a/glib/meson.build
+++ b/glib/meson.build
@@ -197,6 +197,13 @@ glib_sources = files(
 )
 
 if host_system == 'windows'
+  glib_win_rc = configure_file(
+    input: 'glib.rc.in',
+    output: 'glib.rc',
+    configuration: glibconfig_conf,
+  )
+  glib_win_res = windows.compile_resources(glib_win_rc)
+  glib_sources += [glib_win_res]
   glib_sources += files('gthread-win32.c')
   glib_sources += files('gwin32.c', 'gspawn-win32.c', 'giowin32.c')
   platform_deps = [winsock2, cc.find_library('winmm')]
diff --git a/gmodule/gmodule.rc.in b/gmodule/gmodule.rc.in
index 0def0a9..c3d762d 100644
--- a/gmodule/gmodule.rc.in
+++ b/gmodule/gmodule.rc.in
@@ -17,7 +17,7 @@ VS_VERSION_INFO VERSIONINFO
        VALUE "FileDescription", "GModule"
        VALUE "FileVersion", "@GLIB_VERSION@.0"
        VALUE "InternalName", "libgmodule-2.0-@LT_CURRENT_MINUS_AGE@"
-       VALUE "LegalCopyright", "Copyright � 1998-2011 Tim Janik and others."
+       VALUE "LegalCopyright", "Copyright 1998-2011 Tim Janik and others."
        VALUE "OriginalFilename", "libgmodule-2.0-@LT_CURRENT_MINUS_AGE@.dll"
        VALUE "ProductName", "GLib"
        VALUE "ProductVersion", "@GLIB_VERSION@"
diff --git a/gmodule/meson.build b/gmodule/meson.build
index 191bca2..be1fff3 100644
--- a/gmodule/meson.build
+++ b/gmodule/meson.build
@@ -84,8 +84,19 @@ gmoduleconf_h = configure_file(input : 'gmoduleconf.h.in',
 
 install_headers(['gmodule.h'], subdir : 'glib-2.0')
 
+gmodule_sources = ['gmodule.c']
+if host_system == 'windows'
+  gmodule_win_rc = configure_file(
+    input: 'gmodule.rc.in',
+    output: 'gmodule.rc',
+    configuration: glibconfig_conf,
+  )
+  gmodule_win_res = windows.compile_resources(gmodule_win_rc)
+  gmodule_sources += [gmodule_win_res]
+endif
+
 libgmodule = shared_library('gmodule-2.0',
-  sources : ['gmodule.c'],
+  sources : gmodule_sources,
   version : library_version,
   soversion : soversion,
   install : true,
diff --git a/gobject/gobject.rc.in b/gobject/gobject.rc.in
index a453d3d..1c73e93 100644
--- a/gobject/gobject.rc.in
+++ b/gobject/gobject.rc.in
@@ -17,7 +17,7 @@ VS_VERSION_INFO VERSIONINFO
        VALUE "FileDescription", "GObject"
        VALUE "FileVersion", "@GLIB_VERSION@.0"
        VALUE "InternalName", "libgobject-2.0-@LT_CURRENT_MINUS_AGE@"
-       VALUE "LegalCopyright", "Copyright � 1998-2011 Tim Janik, Red Hat, Inc. and others"
+       VALUE "LegalCopyright", "Copyright 1998-2011 Tim Janik, Red Hat, Inc. and others"
        VALUE "OriginalFilename", "libgobject-2.0-@LT_CURRENT_MINUS_AGE@.dll"
        VALUE "ProductName", "GLib"
        VALUE "ProductVersion", "@GLIB_VERSION@"
diff --git a/gobject/meson.build b/gobject/meson.build
index ba01dd5..74d352d 100644
--- a/gobject/meson.build
+++ b/gobject/meson.build
@@ -43,6 +43,16 @@ gobject_sources = files(
   'gvaluetypes.c',
 )
 
+if host_system == 'windows'
+  gobject_win_rc = configure_file(
+    input: 'gobject.rc.in',
+    output: 'gobject.rc',
+    configuration: glibconfig_conf,
+  )
+  gobject_win_res = windows.compile_resources(gobject_win_rc)
+  gobject_sources += [gobject_win_res]
+endif
+
 if enable_dtrace
   gobject_dtrace_obj = dtrace_obj_gen.process('gobject_probes.d')
   gobject_dtrace_hdr = dtrace_hdr_gen.process('gobject_probes.d')
diff --git a/gthread/gthread.rc.in b/gthread/gthread.rc.in
index a1abc56..9e45fdf 100644
--- a/gthread/gthread.rc.in
+++ b/gthread/gthread.rc.in
@@ -17,7 +17,7 @@ VS_VERSION_INFO VERSIONINFO
        VALUE "FileDescription", "GThread"
        VALUE "FileVersion", "@GLIB_VERSION@.0"
        VALUE "InternalName", "libgthread-2.0-@LT_CURRENT_MINUS_AGE@"
-       VALUE "LegalCopyright", "Copyright � 1995-2011 Peter Mattis, Spencer Kimball, Josh MacDonald, 
Sebastian Wilhelmi and others."
+       VALUE "LegalCopyright", "Copyright 1995-2011 Peter Mattis, Spencer Kimball, Josh MacDonald, Sebastian 
Wilhelmi and others."
        VALUE "OriginalFilename", "libgthread-2.0-@LT_CURRENT_MINUS_AGE@.dll"
        VALUE "ProductName", "GLib"
        VALUE "ProductVersion", "@GLIB_VERSION@"
diff --git a/gthread/meson.build b/gthread/meson.build
index 8ccac33..7d1120e 100644
--- a/gthread/meson.build
+++ b/gthread/meson.build
@@ -1,7 +1,19 @@
 # Just a skeleton lib for backwards compatibility since all the functionaliy
 # has been moved into glib now
+
+gthread_sources = ['gthread-impl.c']
+if host_system == 'windows'
+  gthread_win_rc = configure_file(
+    input: 'gthread.rc.in',
+    output: 'gthread.rc',
+    configuration: glibconfig_conf,
+  )
+  gthread_win_res = windows.compile_resources(gthread_win_rc)
+  gthread_sources += [gthread_win_res]
+endif
+
 libgthread = shared_library('gthread-2.0',
-  sources : [ 'gthread-impl.c' ],
+  sources : gthread_sources,
   version : library_version,
   soversion : soversion,
   install : true,
diff --git a/meson.build b/meson.build
index 2426ddd..254acac 100644
--- a/meson.build
+++ b/meson.build
@@ -1073,6 +1073,7 @@ glibconfig_conf.set('g_module_suffix', g_module_suffix)
 glibconfig_conf.set('GLIB_MAJOR_VERSION', major_version)
 glibconfig_conf.set('GLIB_MINOR_VERSION', minor_version)
 glibconfig_conf.set('GLIB_MICRO_VERSION', micro_version)
+glibconfig_conf.set('GLIB_VERSION', glib_version)
 
 glibconfig_conf.set('glib_void_p', voidp_size)
 glibconfig_conf.set('glib_long', long_size)
@@ -1645,6 +1646,7 @@ if want_systemtap and enable_dtrace
 endif
 
 
+windows = import('windows')
 subdir('glib')
 subdir('gobject')
 subdir('gthread')


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]