[gtk/fix.nonunix.builds: 1/2] gdk: Build portal bits on *nix only



commit 8334b006ea3294bf6e085916720884456ac1fb7b
Author: Chun-wei Fan <fanchunwei src gnome org>
Date:   Sat Dec 14 11:13:21 2019 +0800

    gdk: Build portal bits on *nix only
    
    The newly-added portal items are supported on *nix only, so only build
    them on *nix.

 gdk/gdkcontentdeserializer.c | 11 ++++++++++-
 gdk/gdkcontentserializer.c   | 11 ++++++++++-
 gdk/meson.build              |  7 ++++++-
 3 files changed, 26 insertions(+), 3 deletions(-)
---
diff --git a/gdk/gdkcontentdeserializer.c b/gdk/gdkcontentdeserializer.c
index 4a15fa0086..ce11d2a4e8 100644
--- a/gdk/gdkcontentdeserializer.c
+++ b/gdk/gdkcontentdeserializer.c
@@ -691,6 +691,7 @@ string_deserializer (GdkContentDeserializer *deserializer)
   g_object_unref (filter);
 }
 
+#ifdef G_OS_UNIX
 static void
 portal_finish (GObject *object,
                GAsyncResult *result,
@@ -777,6 +778,7 @@ portal_file_deserializer (GdkContentDeserializer *deserializer)
                                 deserializer);
   g_object_unref (output);
 }
+#endif /* G_OS_UNIX */
 
 static void
 file_uri_deserializer_finish (GObject      *source,
@@ -852,7 +854,7 @@ init (void)
   static gboolean initialized = FALSE;
   GSList *formats, *f;
   const char *charset;
-  gboolean has_portal;
+  gboolean has_portal = FALSE;
 
   if (initialized)
     return;
@@ -905,6 +907,7 @@ init (void)
 
   g_slist_free (formats);
 
+#ifdef G_OS_UNIX
   has_portal = file_transfer_portal_available ();
   if (has_portal)
     gdk_content_register_deserializer ("application/vnd.portal.files",
@@ -912,17 +915,23 @@ init (void)
                                        portal_file_deserializer,
                                        NULL,
                                        NULL);
+#endif
+
   gdk_content_register_deserializer ("text/uri-list",
                                      GDK_TYPE_FILE_LIST,
                                      file_uri_deserializer,
                                      NULL,
                                      NULL);
+
+#ifdef G_OS_UNIX
   if (has_portal)
     gdk_content_register_deserializer ("application/vnd.portal.files",
                                        G_TYPE_FILE,
                                        portal_file_deserializer,
                                        NULL,
                                        NULL);
+#endif
+
   gdk_content_register_deserializer ("text/uri-list",
                                      G_TYPE_FILE,
                                      file_uri_deserializer,
diff --git a/gdk/gdkcontentserializer.c b/gdk/gdkcontentserializer.c
index cac4378cc2..a30fd5e392 100644
--- a/gdk/gdkcontentserializer.c
+++ b/gdk/gdkcontentserializer.c
@@ -702,6 +702,7 @@ file_serializer_finish (GObject      *source,
     gdk_content_serializer_return_success (serializer);
 }
 
+#ifdef G_OS_UNIX
 static void
 portal_ready (GObject *object,
               GAsyncResult *result,
@@ -758,6 +759,7 @@ portal_file_serializer (GdkContentSerializer *serializer)
   file_transfer_portal_register_files ((const char **)files->pdata, TRUE, portal_ready, serializer);
   gdk_content_serializer_set_task_data (serializer, files, (GDestroyNotify)g_ptr_array_unref);
 }
+#endif /* G_OS_UNIX */
 
 static void
 file_uri_serializer (GdkContentSerializer *serializer)
@@ -866,7 +868,7 @@ init (void)
   static gboolean initialized = FALSE;
   GSList *formats, *f;
   const char *charset;
-  gboolean has_portal;
+  gboolean has_portal = FALSE;
 
   if (initialized)
     return;
@@ -922,6 +924,7 @@ init (void)
 
   g_slist_free (formats);
 
+#ifdef G_OS_UNIX
   has_portal = file_transfer_portal_available ();
 
   if (has_portal)
@@ -930,6 +933,8 @@ init (void)
                                      portal_file_serializer,
                                      NULL,
                                      NULL);
+#endif
+
   gdk_content_register_serializer (G_TYPE_FILE,
                                    "text/uri-list",
                                    file_uri_serializer,
@@ -940,12 +945,16 @@ init (void)
                                    file_text_serializer,
                                    NULL,
                                    NULL);
+
+#ifdef G_OS_UNIX
   if (has_portal)
     gdk_content_register_serializer (GDK_TYPE_FILE_LIST,
                                      "application/vnd.portal.files",
                                      portal_file_serializer,
                                      NULL,
                                      NULL);
+#endif
+
   gdk_content_register_serializer (GDK_TYPE_FILE_LIST,
                                    "text/uri-list",
                                    file_uri_serializer,
diff --git a/gdk/meson.build b/gdk/meson.build
index ed41b126ea..b0599d1a4a 100644
--- a/gdk/meson.build
+++ b/gdk/meson.build
@@ -19,7 +19,6 @@ gdk_public_sources = files([
   'gdkdrawcontext.c',
   'gdkdrop.c',
   'gdkevents.c',
-  'filetransferportal.c',
   'gdkframeclock.c',
   'gdkframeclockidle.c',
   'gdkframetimings.c',
@@ -48,6 +47,12 @@ gdk_public_sources = files([
   'gdkprofiler.c'
 ])
 
+if os_unix
+  gdk_public_sources += [
+    'filetransferportal.c',
+  ]
+endif
+
 gdk_public_headers = files([
   'gdk-autocleanup.h',
   'gdk.h',


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