[gtk/master.msvc: 2435/2436] modules: Fix build on Visual Studio
- From: Chun-wei Fan <fanchunwei src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/master.msvc: 2435/2436] modules: Fix build on Visual Studio
- Date: Thu, 4 Jun 2020 08:37:15 +0000 (UTC)
commit c7dd44e0bc4693d9aee6309db0dd4cc66ebc2520
Author: Chun-wei Fan <fanchunwei src gnome org>
Date: Thu Jun 4 16:27:56 2020 +0800
modules: Fix build on Visual Studio
Visual Studio does not allow decorating functions with '__declspec (dllexport)'
if a prototype exists and is not decorated with '__declspec (dllexport)' as
well, so we cannot just decorate g_io_module_[load|unload|query] in the various
module sources with G_MODULE_EXPORT because the prototypes of these functions
have been marked with _GLIB_EXTERN, which equates to 'extern' unless overridden
Fix this by overriding _GLIB_EXTERN with _GDK_EXTERN, since we are including
config.h in all the sources, which will pretty much assure us that _GDK_EXTERN
will be defined as appropriate to export these 3 symbols from the modules.
Do this across the board for all modules, even if they are not buildable on
Visual Studio nor Windows, for consistency's sake.
modules/media/gtkffmediafile.c | 3 ---
modules/media/gtkgstmediafile.c | 3 ---
modules/media/meson.build | 2 +-
modules/printbackends/gtkprintbackendcloudprint.c | 3 ---
modules/printbackends/gtkprintbackendcups.c | 3 ---
modules/printbackends/gtkprintbackendfile.c | 3 ---
modules/printbackends/gtkprintbackendlpr.c | 3 ---
modules/printbackends/meson.build | 1 +
8 files changed, 2 insertions(+), 19 deletions(-)
---
diff --git a/modules/media/gtkffmediafile.c b/modules/media/gtkffmediafile.c
index cf7a03489f..c8f2066b5e 100644
--- a/modules/media/gtkffmediafile.c
+++ b/modules/media/gtkffmediafile.c
@@ -171,7 +171,6 @@ G_DEFINE_TYPE_EXTENDED (GtkFfMediaFile, gtk_ff_media_file, GTK_TYPE_MEDIA_FILE,
G_IMPLEMENT_INTERFACE (GDK_TYPE_PAINTABLE,
gtk_ff_media_file_paintable_init))
-G_MODULE_EXPORT
void
g_io_module_load (GIOModule *module)
{
@@ -187,7 +186,6 @@ g_io_module_load (GIOModule *module)
0);
}
-G_MODULE_EXPORT
G_GNUC_NORETURN
void
g_io_module_unload (GIOModule *module)
@@ -195,7 +193,6 @@ g_io_module_unload (GIOModule *module)
g_assert_not_reached ();
}
-G_MODULE_EXPORT
char **
g_io_module_query (void)
{
diff --git a/modules/media/gtkgstmediafile.c b/modules/media/gtkgstmediafile.c
index 5988ef38c3..b094796fd5 100644
--- a/modules/media/gtkgstmediafile.c
+++ b/modules/media/gtkgstmediafile.c
@@ -97,7 +97,6 @@ G_DEFINE_TYPE_EXTENDED (GtkGstMediaFile, gtk_gst_media_file, GTK_TYPE_MEDIA_FILE
G_IMPLEMENT_INTERFACE (GDK_TYPE_PAINTABLE,
gtk_gst_media_file_paintable_init))
-G_MODULE_EXPORT
void
g_io_module_load (GIOModule *module)
{
@@ -109,7 +108,6 @@ g_io_module_load (GIOModule *module)
10);
}
-G_MODULE_EXPORT
G_GNUC_NORETURN
void
g_io_module_unload (GIOModule *module)
@@ -117,7 +115,6 @@ g_io_module_unload (GIOModule *module)
g_assert_not_reached ();
}
-G_MODULE_EXPORT
char **
g_io_module_query (void)
{
diff --git a/modules/media/meson.build b/modules/media/meson.build
index c6dbed1f26..e1f4e1ca08 100644
--- a/modules/media/meson.build
+++ b/modules/media/meson.build
@@ -23,7 +23,7 @@ endif
media_subdir = 'gtk-4.0/@0@/media'.format(gtk_binary_version)
media_install_dir = join_paths(get_option('libdir'), media_subdir)
-extra_c_args = ['-DGTK_COMPILATION']
+extra_c_args = ['-DGTK_COMPILATION', '-D_GLIB_EXTERN=_GDK_EXTERN']
extra_c_args += common_cflags
if media_backends.contains('ffmpeg')
diff --git a/modules/printbackends/gtkprintbackendcloudprint.c
b/modules/printbackends/gtkprintbackendcloudprint.c
index 99dc5f3665..6a5d7755af 100644
--- a/modules/printbackends/gtkprintbackendcloudprint.c
+++ b/modules/printbackends/gtkprintbackendcloudprint.c
@@ -103,7 +103,6 @@ void t_goa_account_free (gpointer data);
G_DEFINE_DYNAMIC_TYPE (GtkPrintBackendCloudprint, gtk_print_backend_cloudprint, GTK_TYPE_PRINT_BACKEND)
-G_MODULE_EXPORT
void
g_io_module_load (GIOModule *module)
{
@@ -119,13 +118,11 @@ g_io_module_load (GIOModule *module)
10);
}
-G_MODULE_EXPORT
void
g_io_module_unload (GIOModule *module)
{
}
-G_MODULE_EXPORT
char **
g_io_module_query (void)
{
diff --git a/modules/printbackends/gtkprintbackendcups.c b/modules/printbackends/gtkprintbackendcups.c
index 58dd95bbbe..893ced4c16 100644
--- a/modules/printbackends/gtkprintbackendcups.c
+++ b/modules/printbackends/gtkprintbackendcups.c
@@ -236,7 +236,6 @@ static void secrets_service_vanished_cb (GDBusConnec
G_DEFINE_DYNAMIC_TYPE(GtkPrintBackendCups, gtk_print_backend_cups, GTK_TYPE_PRINT_BACKEND)
-G_MODULE_EXPORT
void
g_io_module_load (GIOModule *module)
{
@@ -251,13 +250,11 @@ g_io_module_load (GIOModule *module)
10);
}
-G_MODULE_EXPORT
void
g_io_module_unload (GIOModule *module)
{
}
-G_MODULE_EXPORT
char **
g_io_module_query (void)
{
diff --git a/modules/printbackends/gtkprintbackendfile.c b/modules/printbackends/gtkprintbackendfile.c
index 3486805688..071ebec359 100644
--- a/modules/printbackends/gtkprintbackendfile.c
+++ b/modules/printbackends/gtkprintbackendfile.c
@@ -102,7 +102,6 @@ static GtkPageSetup * file_printer_get_default_page_size (GtkPrinter
G_DEFINE_DYNAMIC_TYPE(GtkPrintBackendFile, gtk_print_backend_file, GTK_TYPE_PRINT_BACKEND)
-G_MODULE_EXPORT
void
g_io_module_load (GIOModule *module)
{
@@ -116,13 +115,11 @@ g_io_module_load (GIOModule *module)
10);
}
-G_MODULE_EXPORT
void
g_io_module_unload (GIOModule *module)
{
}
-G_MODULE_EXPORT
char **
g_io_module_query (void)
{
diff --git a/modules/printbackends/gtkprintbackendlpr.c b/modules/printbackends/gtkprintbackendlpr.c
index 0626e594fa..cef1501c30 100644
--- a/modules/printbackends/gtkprintbackendlpr.c
+++ b/modules/printbackends/gtkprintbackendlpr.c
@@ -83,7 +83,6 @@ static void gtk_print_backend_lpr_print_stream (GtkPrintBacke
G_DEFINE_DYNAMIC_TYPE (GtkPrintBackendLpr, gtk_print_backend_lpr, GTK_TYPE_PRINT_BACKEND)
-G_MODULE_EXPORT
void
g_io_module_load (GIOModule *module)
{
@@ -97,13 +96,11 @@ g_io_module_load (GIOModule *module)
10);
}
-G_MODULE_EXPORT
void
g_io_module_unload (GIOModule *module)
{
}
-G_MODULE_EXPORT
char **
g_io_module_query (void)
{
diff --git a/modules/printbackends/meson.build b/modules/printbackends/meson.build
index 643a8ba888..0471cb1baa 100644
--- a/modules/printbackends/meson.build
+++ b/modules/printbackends/meson.build
@@ -68,6 +68,7 @@ printbackends_args = [
'-DGTK_COMPILATION',
'-DGTK_DISABLE_DEPRECATION_WARNINGS',
'-DGTK_PRINT_BACKEND_ENABLE_UNSUPPORTED',
+ '-D_GLIB_EXTERN=_GDK_EXTERN',
] + common_cflags
if print_backends.contains('cups')
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]