123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264 |
- From b7726d558c10c2c3b6c987954a0367116ccdfc18 Mon Sep 17 00:00:00 2001
- From: Mart Raudsepp <leio@gentoo.org>
- Date: Mon, 4 Mar 2019 01:22:13 +0200
- Subject: [PATCH 3/5] build: Make grilo and gnome-online-accounts optional
- grilo requires goa
- ---
- meson.build | 15 ++++++++++++++-
- meson_options.txt | 2 ++
- panels/background/bg-pictures-source.c | 20 ++++++++++++++++++++
- panels/background/meson.build | 7 +++++--
- panels/meson.build | 5 ++++-
- shell/cc-panel-loader.c | 4 ++++
- 6 files changed, 49 insertions(+), 4 deletions(-)
- diff --git a/meson.build b/meson.build
- index acf68a1da..24f54815f 100644
- --- a/meson.build
- +++ b/meson.build
- @@ -124,7 +124,7 @@ gio_dep = dependency('gio-2.0')
- glib_dep = dependency('glib-2.0', version: '>= 2.56.0')
- gnome_desktop_dep = dependency('gnome-desktop-3.0', version: '>= 3.33.4')
- gnome_settings_dep = dependency('gnome-settings-daemon', version: '>= 3.27.90')
- -goa_dep = dependency('goa-1.0', version: goa_req_version)
- +goa_dep = dependency('goa-1.0', version: goa_req_version, required: get_option('goa'))
- gsettings_desktop_dep = dependency('gsettings-desktop-schemas', version: '>= 3.37.1')
- libxml_dep = dependency('libxml-2.0')
- polkit_gobject_dep = dependency('polkit-gobject-1', version: '>= 0.114')
- @@ -138,6 +138,19 @@ epoxy_dep = dependency('epoxy')
-
- m_dep = cc.find_library('m')
-
- +enable_goa = goa_dep.found()
- +config_h.set('BUILD_GOA', enable_goa,
- + description: 'Define to 1 to build the Online Accounts panel')
- +
- +grilo_dep = dependency('grilo-0.3', version: '>= 0.3.0', required: get_option('grilo'))
- +enable_grilo = grilo_dep.found()
- +config_h.set('HAVE_GRILO', enable_grilo,
- + description: 'Define to 1 to enable grilo support')
- +
- +if enable_grilo and not enable_goa
- + error('Grilo support requires goa')
- +endif
- +
- common_deps = [
- gio_dep,
- glib_dep,
- diff --git a/meson_options.txt b/meson_options.txt
- index 5c558557d..17e3551fa 100644
- --- a/meson_options.txt
- +++ b/meson_options.txt
- @@ -1,6 +1,8 @@
- option('bluetooth', type: 'boolean', value: true, description: 'build with Bluetooth support')
- option('cheese', type: 'boolean', value: true, description: 'build with cheese webcam support')
- option('documentation', type: 'boolean', value: false, description: 'build documentation')
- +option('goa', type: 'feature', value: 'auto', description: 'build with gnome-online-accounts support')
- +option('grilo', type: 'feature', value: 'auto', description: 'build with grilo support (background panel)')
- option('ibus', type: 'boolean', value: true, description: 'build with IBus support')
- option('kerberos', type: 'feature', value: 'auto', description: 'build with kerberos support')
- option('network_manager', type: 'boolean', value: true, description: 'build with NetworkManager support')
- diff --git a/panels/background/bg-pictures-source.c b/panels/background/bg-pictures-source.c
- index 3a3027b13..edc6c3247 100644
- --- a/panels/background/bg-pictures-source.c
- +++ b/panels/background/bg-pictures-source.c
- @@ -23,13 +23,17 @@
-
- #include "bg-pictures-source.h"
-
- +#ifdef HAVE_GRILO
- #include "cc-background-grilo-miner.h"
- +#endif
- #include "cc-background-item.h"
-
- #include <string.h>
- #include <cairo-gobject.h>
- #include <gio/gio.h>
- +#ifdef HAVE_GRILO
- #include <grilo.h>
- +#endif
- #include <libgnome-desktop/gnome-desktop-thumbnail.h>
- #include <gdesktop-enums.h>
-
- @@ -43,7 +47,9 @@ struct _BgPicturesSource
-
- GCancellable *cancellable;
-
- +#ifdef HAVE_GRILO
- CcBackgroundGriloMiner *grl_miner;
- +#endif
-
- GFileMonitor *picture_dir_monitor;
- GFileMonitor *cache_dir_monitor;
- @@ -83,7 +89,9 @@ bg_pictures_source_dispose (GObject *object)
- g_clear_object (&source->cancellable);
- }
-
- +#ifdef HAVE_GRILO
- g_clear_object (&source->grl_miner);
- +#endif
-
- G_OBJECT_CLASS (bg_pictures_source_parent_class)->dispose (object);
- }
- @@ -392,7 +400,9 @@ add_single_file (BgPicturesSource *bg_source,
- const gchar *pictures_path;
- g_autoptr(GFile) pictures_dir = NULL;
- g_autoptr(GFile) cache_dir = NULL;
- +#ifdef HAVE_GRILO
- GrlMedia *media;
- +#endif
-
- /* find png and jpeg files */
- if (!content_type)
- @@ -432,14 +442,17 @@ add_single_file (BgPicturesSource *bg_source,
- "source-url", source_uri,
- NULL);
-
- +#ifdef HAVE_GRILO
- media = g_object_get_data (G_OBJECT (file), "grl-media");
- if (media == NULL)
- +#endif
- {
- g_object_set_data_full (G_OBJECT (file), "item", g_object_ref (item), g_object_unref);
- g_file_read_async (file, G_PRIORITY_DEFAULT,
- bg_source->cancellable,
- picture_opened_for_read, bg_source);
- }
- +#ifdef HAVE_GRILO
- else
- {
- g_autoptr(GFile) native_file = NULL;
- @@ -476,6 +489,7 @@ add_single_file (BgPicturesSource *bg_source,
- picture_copied_for_read,
- bg_source);
- }
- +#endif
-
- retval = TRUE;
-
- @@ -496,6 +510,7 @@ add_single_file_from_info (BgPicturesSource *bg_source,
- return add_single_file (bg_source, file, content_type, mtime);
- }
-
- +#ifdef HAVE_GRILO
- static gboolean
- add_single_file_from_media (BgPicturesSource *bg_source,
- GFile *file,
- @@ -520,6 +535,7 @@ add_single_file_from_media (BgPicturesSource *bg_source,
-
- return add_single_file (bg_source, file, content_type, (guint64) mtime_unix);
- }
- +#endif
-
- gboolean
- bg_pictures_source_add (BgPicturesSource *bg_source,
- @@ -804,6 +820,7 @@ monitor_path (BgPicturesSource *self,
- return monitor;
- }
-
- +#ifdef HAVE_GRILO
- static void
- media_found_cb (BgPicturesSource *self, GrlMedia *media)
- {
- @@ -815,6 +832,7 @@ media_found_cb (BgPicturesSource *self, GrlMedia *media)
- g_object_set_data_full (G_OBJECT (file), "grl-media", g_object_ref (media), g_object_unref);
- add_single_file_from_media (self, file, media);
- }
- +#endif
-
- static void
- bg_pictures_source_init (BgPicturesSource *self)
- @@ -837,9 +855,11 @@ bg_pictures_source_init (BgPicturesSource *self)
- cache_path = bg_pictures_source_get_cache_path ();
- self->cache_dir_monitor = monitor_path (self, cache_path);
-
- +#ifdef HAVE_GRILO
- self->grl_miner = cc_background_grilo_miner_new ();
- g_signal_connect_object (self->grl_miner, "media-found", G_CALLBACK (media_found_cb), self, G_CONNECT_SWAPPED);
- cc_background_grilo_miner_start (self->grl_miner);
- +#endif
- }
-
- BgPicturesSource *
- diff --git a/panels/background/meson.build b/panels/background/meson.build
- index e9fa398d4..db18ffd8c 100644
- --- a/panels/background/meson.build
- +++ b/panels/background/meson.build
- @@ -81,20 +81,23 @@ sources = common_sources + files(
- 'bg-source.c',
- 'bg-wallpapers-source.c',
- 'cc-background-chooser.c',
- - 'cc-background-grilo-miner.c',
- 'cc-background-item.c',
- 'cc-background-panel.c',
- 'cc-background-preview.c',
- 'cc-background-xml.c',
- )
-
- +if enable_grilo
- + sources += files('cc-background-grilo-miner.c')
- +endif
- +
- deps = common_deps + [
- gdk_pixbuf_dep,
- gnome_desktop_dep,
- goa_dep,
- libxml_dep,
- dependency('cairo-gobject'),
- - dependency('grilo-0.3', version: '>= 0.3.0')
- + grilo_dep
- ]
-
- cflags += [
- diff --git a/panels/meson.build b/panels/meson.build
- index 6798f6997..90bb3deef 100644
- --- a/panels/meson.build
- +++ b/panels/meson.build
- @@ -16,7 +16,6 @@ panels = [
- 'microphone',
- 'mouse',
- 'notifications',
- - 'online-accounts',
- 'power',
- 'printers',
- 'region',
- @@ -29,6 +28,10 @@ panels = [
- 'user-accounts'
- ]
-
- +if enable_goa
- + panels += ['online-accounts']
- +endif
- +
- if enable_network_manager
- panels += ['network']
- endif
- diff --git a/shell/cc-panel-loader.c b/shell/cc-panel-loader.c
- index f20384394..b10611c80 100644
- --- a/shell/cc-panel-loader.c
- +++ b/shell/cc-panel-loader.c
- @@ -48,7 +48,9 @@ extern GType cc_network_panel_get_type (void);
- extern GType cc_wifi_panel_get_type (void);
- #endif /* BUILD_NETWORK */
- extern GType cc_notifications_panel_get_type (void);
- +#ifdef BUILD_GOA
- extern GType cc_goa_panel_get_type (void);
- +#endif /* BUILD_GOA */
- extern GType cc_power_panel_get_type (void);
- extern GType cc_printers_panel_get_type (void);
- extern GType cc_region_panel_get_type (void);
- @@ -112,7 +114,9 @@ static CcPanelLoaderVtable default_panels[] =
- PANEL_TYPE("wifi", cc_wifi_panel_get_type, cc_wifi_panel_static_init_func),
- #endif
- PANEL_TYPE("notifications", cc_notifications_panel_get_type, NULL),
- +#ifdef BUILD_GOA
- PANEL_TYPE("online-accounts", cc_goa_panel_get_type, NULL),
- +#endif
- PANEL_TYPE("power", cc_power_panel_get_type, NULL),
- PANEL_TYPE("printers", cc_printers_panel_get_type, NULL),
- PANEL_TYPE("region", cc_region_panel_get_type, NULL),
- --
- 2.26.3
|