summaryrefslogtreecommitdiff
path: root/applets/notification_area
diff options
context:
space:
mode:
Diffstat (limited to 'applets/notification_area')
-rw-r--r--applets/notification_area/libstatus-notifier-watcher/meson.build12
-rw-r--r--applets/notification_area/meson.build162
-rw-r--r--applets/notification_area/status-notifier/meson.build40
-rw-r--r--applets/notification_area/system-tray/meson.build23
4 files changed, 237 insertions, 0 deletions
diff --git a/applets/notification_area/libstatus-notifier-watcher/meson.build b/applets/notification_area/libstatus-notifier-watcher/meson.build
new file mode 100644
index 00000000..a180a16e
--- /dev/null
+++ b/applets/notification_area/libstatus-notifier-watcher/meson.build
@@ -0,0 +1,12 @@
+libstatus_notifier_watcher = static_library('status-notifier-watcher',
+ 'gf-sn-watcher-v0.c',
+ 'gf-sn-watcher-v0.h',
+ 'gf-status-notifier-watcher.c',
+ 'gf-status-notifier-watcher.h',
+ gnome.gdbus_codegen('gf-sn-watcher-v0-gen',
+ 'org.kde.StatusNotifierWatcher.xml',
+ namespace: 'Gf',
+ ),
+ dependencies: notification_area_deps,
+ c_args: ['-DG_LOG_DOMAIN="status-notifier-watcher"'] + disable_deprecated_flags,
+)
diff --git a/applets/notification_area/meson.build b/applets/notification_area/meson.build
new file mode 100644
index 00000000..74400b21
--- /dev/null
+++ b/applets/notification_area/meson.build
@@ -0,0 +1,162 @@
+notification_area_deps = [
+ gtk_dep,
+ mate_desktop_dep,
+]
+
+notification_area_c_args = [
+ '-DMATELOCALEDIR="@0@"'.format(mate_panel_localedir),
+ '-DG_LOG_DOMAIN="notification-area-applet"',
+ '-DPROVIDE_WATCHER_SERVICE=1',
+] + disable_deprecated_flags
+
+subdir('libstatus-notifier-watcher')
+subdir('status-notifier')
+
+if have_x11
+ subdir('system-tray')
+endif
+
+libtray_sources = [
+ 'na-grid.c',
+ 'na-grid.h',
+ 'na-host.c',
+ 'na-host.h',
+ 'na-item.c',
+ 'na-item.h',
+]
+
+libtray = static_library('tray',
+ libtray_sources + status_notifier_codegen,
+ include_directories: [include_directories('.'), include_directories('status-notifier')],
+ dependencies: notification_area_deps,
+ link_with: [libstatus_notifier, libstatus_notifier_watcher],
+ c_args: notification_area_c_args,
+)
+
+if have_x11
+ libtray_extra_link = libsystem_tray
+ executable('testtray',
+ 'testtray.c',
+ include_directories: include_directories('.'),
+ dependencies: notification_area_deps,
+ link_with: [libtray, libstatus_notifier, libstatus_notifier_watcher, libsystem_tray],
+ c_args: notification_area_c_args,
+ )
+else
+ libtray_extra_link = []
+endif
+
+na_resource_deps = files(
+ 'notification-area-preferences-dialog.ui',
+ 'notification-area-menu.xml',
+)
+
+na_resources_c = custom_target('na-resources.c',
+ input: 'na.gresource.xml',
+ output: 'na-resources.c',
+ depend_files: na_resource_deps,
+ command: [
+ glib_compile_resources,
+ '--target', '@OUTPUT@',
+ '--sourcedir', meson.current_source_dir(),
+ '--generate-source',
+ '--c-name', 'na',
+ '@INPUT@',
+ ],
+)
+
+na_resources_h = custom_target('na-resources.h',
+ input: 'na.gresource.xml',
+ output: 'na-resources.h',
+ depend_files: na_resource_deps,
+ command: [
+ glib_compile_resources,
+ '--target', '@OUTPUT@',
+ '--sourcedir', meson.current_source_dir(),
+ '--generate-header',
+ '--c-name', 'na',
+ '@INPUT@',
+ ],
+)
+
+notification_area_sources = [
+ 'main.c',
+ 'main.h',
+ na_resources_c,
+ na_resources_h,
+]
+
+notification_area_full_deps = notification_area_deps + libmate_panel_applet_deps
+
+notification_area_inc_dirs = [
+ include_directories('.'),
+ libmate_panel_applet_inc,
+]
+
+if notification_area_inprocess
+ notification_area_applet = shared_library('notification-area-applet',
+ notification_area_sources,
+ include_directories: notification_area_inc_dirs,
+ dependencies: notification_area_full_deps,
+ c_args: notification_area_c_args,
+ link_with: [libmate_panel_applet_lib, libtray, libstatus_notifier, libstatus_notifier_watcher] + libtray_extra_link,
+ install: true,
+ install_dir: mate_panel_pkglibdir,
+ )
+ notification_area_applet_in_process = 'true'
+ notification_area_applet_location = join_paths(mate_panel_pkglibdir, 'libnotification-area-applet.so')
+else
+ notification_area_applet = executable('notification-area-applet',
+ notification_area_sources,
+ include_directories: notification_area_inc_dirs,
+ dependencies: notification_area_full_deps,
+ c_args: notification_area_c_args,
+ link_with: [libmate_panel_applet_lib, libtray, libstatus_notifier, libstatus_notifier_watcher] + libtray_extra_link,
+ install: true,
+ install_dir: mate_panel_libexecdir,
+ )
+ notification_area_applet_in_process = 'false'
+ notification_area_applet_location = join_paths(mate_panel_libexecdir, 'notification-area-applet')
+endif
+
+# applet registration file
+notification_area_applet_desktop_in = configure_file(
+ input: 'org.mate.panel.NotificationAreaApplet.mate-panel-applet.desktop.in.in',
+ output: 'org.mate.panel.NotificationAreaApplet.mate-panel-applet.desktop.in',
+ configuration: {
+ 'IN_PROCESS': notification_area_applet_in_process,
+ 'LOCATION': notification_area_applet_location,
+ 'VERSION': mate_panel_version,
+ },
+)
+
+notification_area_applet_desktop = i18n.merge_file(
+ input: notification_area_applet_desktop_in,
+ output: 'org.mate.panel.NotificationAreaApplet.mate-panel-applet',
+ type: 'desktop',
+ po_dir: '../../po',
+ install: true,
+ install_dir: mate_panel_appletsdir,
+)
+
+if not notification_area_inprocess
+ notification_area_service = configure_file(
+ input: 'org.mate.panel.applet.NotificationAreaAppletFactory.service.in',
+ output: 'org.mate.panel.applet.NotificationAreaAppletFactory.service',
+ configuration: {
+ 'LOCATION': notification_area_applet_location,
+ },
+ )
+ install_data(notification_area_service,
+ install_dir: join_paths(mate_panel_datadir, 'dbus-1', 'services'),
+ )
+endif
+
+# gsettings schema
+notification_area_gschema = configure_file(
+ input: 'org.mate.panel.applet.notification-area.gschema.xml.in',
+ output: 'org.mate.panel.applet.notification-area.gschema.xml',
+ configuration: {'GETTEXT_PACKAGE': mate_panel_gettext_package},
+)
+
+install_data(notification_area_gschema, install_dir: mate_panel_schemadir)
diff --git a/applets/notification_area/status-notifier/meson.build b/applets/notification_area/status-notifier/meson.build
new file mode 100644
index 00000000..6f6305a5
--- /dev/null
+++ b/applets/notification_area/status-notifier/meson.build
@@ -0,0 +1,40 @@
+status_notifier_codegen = [
+ gnome.gdbus_codegen('sn-dbus-menu-gen',
+ 'com.canonical.dbusmenu.xml',
+ namespace: 'Sn',
+ ),
+ gnome.gdbus_codegen('sn-host-v0-gen',
+ 'org.kde.StatusNotifierHost.xml',
+ namespace: 'Sn',
+ ),
+ gnome.gdbus_codegen('sn-item-v0-gen',
+ 'org.kde.StatusNotifierItem.xml',
+ namespace: 'Sn',
+ ),
+ gnome.gdbus_codegen('sn-watcher-v0-gen',
+ 'org.kde.StatusNotifierWatcher.xml',
+ namespace: 'Sn',
+ ),
+]
+
+libstatus_notifier = static_library('status-notifier',
+ 'sn-dbus-menu.c',
+ 'sn-dbus-menu.h',
+ 'sn-dbus-menu-item.c',
+ 'sn-dbus-menu-item.h',
+ 'sn-flat-button.c',
+ 'sn-flat-button.h',
+ 'sn-host-v0.c',
+ 'sn-host-v0.h',
+ 'sn-item.c',
+ 'sn-item.h',
+ 'sn-item-v0.c',
+ 'sn-item-v0.h',
+ status_notifier_codegen,
+ include_directories: [include_directories('.'), include_directories('..')],
+ dependencies: notification_area_deps + [m_dep],
+ c_args: [
+ '-DMATELOCALEDIR="@0@"'.format(mate_panel_localedir),
+ '-DG_LOG_DOMAIN="notification-area-applet"',
+ ] + disable_deprecated_flags,
+)
diff --git a/applets/notification_area/system-tray/meson.build b/applets/notification_area/system-tray/meson.build
new file mode 100644
index 00000000..a3add66a
--- /dev/null
+++ b/applets/notification_area/system-tray/meson.build
@@ -0,0 +1,23 @@
+na_marshal = gnome.genmarshal('na-marshal',
+ sources: 'na-marshal.list',
+ prefix: '_na_marshal',
+ internal: true,
+)
+
+libsystem_tray = static_library('system-tray',
+ 'fixedtip.c',
+ 'fixedtip.h',
+ na_marshal,
+ 'na-tray.c',
+ 'na-tray.h',
+ 'na-tray-child.c',
+ 'na-tray-child.h',
+ 'na-tray-manager.c',
+ 'na-tray-manager.h',
+ include_directories: [include_directories('.'), include_directories('..')],
+ dependencies: notification_area_deps + [x11_dep],
+ c_args: [
+ '-DMATELOCALEDIR="@0@"'.format(mate_panel_localedir),
+ '-DG_LOG_DOMAIN="notification-area-applet"',
+ ] + disable_deprecated_flags,
+)