[glib] meson: fix static build under Windows
- From: Christoph Reiter <creiter src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib] meson: fix static build under Windows
- Date: Thu, 4 Jan 2018 21:24:15 +0000 (UTC)
commit cf93b27cebd067fd7b91a14e1cf1b2c17fcd9c97
Author: Christoph Reiter <reiter christoph gmail com>
Date: Sun Jul 16 16:41:02 2017 +0200
meson: fix static build under Windows
Properly define GLIB/GOBJECT_STATIC_COMPILATION when static build is enabled.
Use library() instead of shared_library() to allow selecting static builds.
https://bugzilla.gnome.org/show_bug.cgi?id=784995
gio/meson.build | 2 +-
gio/tests/gdbus-object-manager-example/meson.build | 2 +-
gio/tests/modules/meson.build | 4 ++--
glib/glibconfig.h.in | 4 +++-
glib/meson.build | 2 +-
gmodule/meson.build | 2 +-
gobject/meson.build | 2 +-
gthread/meson.build | 2 +-
meson.build | 5 +++++
9 files changed, 16 insertions(+), 9 deletions(-)
---
diff --git a/gio/meson.build b/gio/meson.build
index 51dc4cf..8316073 100644
--- a/gio/meson.build
+++ b/gio/meson.build
@@ -724,7 +724,7 @@ else
gio_dtrace_hdr = []
endif
-libgio = shared_library('gio-2.0',
+libgio = library('gio-2.0',
gioenumtypes_h, gioenumtypes_c, gnetworking_h, gio_sources,
gio_dtrace_hdr, gio_dtrace_obj,
version : library_version,
diff --git a/gio/tests/gdbus-object-manager-example/meson.build
b/gio/tests/gdbus-object-manager-example/meson.build
index 6303573..d594c68 100644
--- a/gio/tests/gdbus-object-manager-example/meson.build
+++ b/gio/tests/gdbus-object-manager-example/meson.build
@@ -14,7 +14,7 @@ gdbus_example_objectmanager_generated = custom_target('gdbus-example-objectmanag
'--generate-docbook', 'gdbus-example-objectmanager-generated',
'@INPUT@'])
-libgdbus_example_objectmanager = shared_library('libgdbus-example-objectmanager',
+libgdbus_example_objectmanager = library('libgdbus-example-objectmanager',
gdbus_example_objectmanager_generated,
c_args : ['-DHAVE_CONFIG_H=1'] + gio_c_args,
dependencies : [libglib_dep, libgmodule_dep, libgobject_dep, libgio_dep],
diff --git a/gio/tests/modules/meson.build b/gio/tests/modules/meson.build
index c219015..5ae131a 100644
--- a/gio/tests/modules/meson.build
+++ b/gio/tests/modules/meson.build
@@ -1,10 +1,10 @@
-libtestmodulea = shared_library('testmodulea', 'test-module-a.c',
+libtestmodulea = library('testmodulea', 'test-module-a.c',
install : false,
dependencies : [libglib_dep, libgobject_dep, libgmodule_dep, libgio_dep],
c_args : [ ]
)
-libtestmoduleb = shared_library('testmoduleb', 'test-module-b.c',
+libtestmoduleb = library('testmoduleb', 'test-module-b.c',
install : false,
dependencies : [libglib_dep, libgobject_dep, libgmodule_dep, libgio_dep],
c_args : [ ]
diff --git a/glib/glibconfig.h.in b/glib/glibconfig.h.in
index 43e1ba1..076d7ac 100644
--- a/glib/glibconfig.h.in
+++ b/glib/glibconfig.h.in
@@ -18,6 +18,9 @@
*/
#mesondefine GLIB_USING_SYSTEM_PRINTF
+#mesondefine GLIB_STATIC_COMPILATION
+#mesondefine GOBJECT_STATIC_COMPILATION
+
G_BEGIN_DECLS
#define G_MINFLOAT FLT_MIN
@@ -115,7 +118,6 @@ typedef unsigned @glib_intptr_type_define@ guintptr;
#define GLIB_MICRO_VERSION @GLIB_MICRO_VERSION@
@glib_os@
-@glib_static_compilation@
@glib_vacopy@
diff --git a/glib/meson.build b/glib/meson.build
index 2b3790c..6bd2ec9 100644
--- a/glib/meson.build
+++ b/glib/meson.build
@@ -227,7 +227,7 @@ if use_pcre_static_flag
pcre_static_args = ['-DPCRE_STATIC']
endif
-libglib = shared_library('glib-2.0',
+libglib = library('glib-2.0',
glib_dtrace_obj, glib_dtrace_hdr,
sources : [deprecated_sources, glib_sources],
version : library_version,
diff --git a/gmodule/meson.build b/gmodule/meson.build
index be1fff3..03c689e 100644
--- a/gmodule/meson.build
+++ b/gmodule/meson.build
@@ -95,7 +95,7 @@ if host_system == 'windows'
gmodule_sources += [gmodule_win_res]
endif
-libgmodule = shared_library('gmodule-2.0',
+libgmodule = library('gmodule-2.0',
sources : gmodule_sources,
version : library_version,
soversion : soversion,
diff --git a/gobject/meson.build b/gobject/meson.build
index 74d352d..f58cfb2 100644
--- a/gobject/meson.build
+++ b/gobject/meson.build
@@ -61,7 +61,7 @@ else
gobject_dtrace_hdr = []
endif
-libgobject = shared_library('gobject-2.0',
+libgobject = library('gobject-2.0',
gobject_dtrace_obj, gobject_dtrace_hdr,
sources : gobject_sources,
version : library_version,
diff --git a/gthread/meson.build b/gthread/meson.build
index 7d1120e..8d4696d 100644
--- a/gthread/meson.build
+++ b/gthread/meson.build
@@ -12,7 +12,7 @@ if host_system == 'windows'
gthread_sources += [gthread_win_res]
endif
-libgthread = shared_library('gthread-2.0',
+libgthread = library('gthread-2.0',
sources : gthread_sources,
version : library_version,
soversion : soversion,
diff --git a/meson.build b/meson.build
index 254acac..2f474cc 100644
--- a/meson.build
+++ b/meson.build
@@ -123,6 +123,11 @@ if get_option('default_library') != 'static'
endif
endif
+if host_system == 'windows' and get_option('default_library') == 'static'
+ glibconfig_conf.set('GLIB_STATIC_COMPILATION', '1')
+ glibconfig_conf.set('GOBJECT_STATIC_COMPILATION', '1')
+endif
+
# FIXME: what about Cygwin (G_WITH_CYGWIN)
if host_system == 'windows'
glib_os = '''#define G_OS_WIN32
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]