258 lines
7.1 KiB
Diff
258 lines
7.1 KiB
Diff
From 185c1f7541ee44095ec5d9348298510e28e37f2c Mon Sep 17 00:00:00 2001
|
|
From: Ray Strode <rstrode@redhat.com>
|
|
Date: Thu, 24 Aug 2023 17:43:00 -0400
|
|
Subject: [PATCH 3/4] meson: Add codegen for localed
|
|
|
|
We're going to need to be querying localed for input source information.
|
|
|
|
This commit paves the way for that by generating proxy glue code for
|
|
talking to localed.
|
|
---
|
|
libgnome-desktop/meson.build | 8 +++++
|
|
libgnome-desktop/org.freedesktop.locale1.xml | 38 ++++++++++++++++++++
|
|
2 files changed, 46 insertions(+)
|
|
create mode 100644 libgnome-desktop/org.freedesktop.locale1.xml
|
|
|
|
diff --git a/libgnome-desktop/meson.build b/libgnome-desktop/meson.build
|
|
index d41e0cc0..164fd2ff 100644
|
|
--- a/libgnome-desktop/meson.build
|
|
+++ b/libgnome-desktop/meson.build
|
|
@@ -28,60 +28,66 @@ conf.set('HAVE_USELOCALE', cc.has_function('uselocale'))
|
|
conf.set('HAVE_XLOCALE', cc.has_header('xlocale.h'))
|
|
|
|
configure_file(
|
|
output: 'config.h',
|
|
configuration: conf,
|
|
)
|
|
|
|
version_conf = configuration_data()
|
|
version_array = meson.project_version().split('.')
|
|
version_conf.set('GNOME_PLATFORM', version_array[0])
|
|
|
|
gnome_desktop_header_file = configure_file(
|
|
input: 'gnome-desktop-version.h.in',
|
|
output: 'gnome-desktop-version.h',
|
|
configuration: version_conf,
|
|
)
|
|
|
|
dbus_xrandr_built_sources = gnome.gdbus_codegen('meta-dbus-xrandr',
|
|
'xrandr.xml',
|
|
namespace: 'MetaDBus',
|
|
interface_prefix: 'org.gnome.Mutter'
|
|
)
|
|
|
|
dbus_idle_built_sources = gnome.gdbus_codegen('meta-dbus-idle-monitor',
|
|
'idle-monitor.xml',
|
|
namespace: 'MetaDBus',
|
|
interface_prefix: 'org.gnome.Mutter',
|
|
object_manager: true
|
|
)
|
|
|
|
+dbus_localed_built_sources = gnome.gdbus_codegen('sd-locale1',
|
|
+ 'org.freedesktop.locale1.xml',
|
|
+ namespace: 'SdDBus',
|
|
+ interface_prefix: 'org.freedesktop',
|
|
+)
|
|
+
|
|
non_latin_input_sources = custom_target('generate_non_latin_input_sources_header',
|
|
output : 'non-latin-input-sources.h',
|
|
command : [python3, files ('generate-non-latin-input-sources.py')]
|
|
)
|
|
|
|
base_ldflags = []
|
|
base_symbol_map = '-Wl,--version-script=@0@'.format(meson.current_source_dir() / 'base-symbol.map')
|
|
if cc.has_link_argument(base_symbol_map)
|
|
base_ldflags += base_symbol_map
|
|
endif
|
|
|
|
### gnome-desktop-base
|
|
libgnome_desktop_base_sources = [
|
|
'gnome-desktop-version.c',
|
|
'gnome-desktop-thumbnail.c',
|
|
'gnome-idle-monitor.c',
|
|
'gnome-languages.c',
|
|
'gnome-pnp-ids.c',
|
|
'gnome-systemd.c',
|
|
'gnome-wall-clock.c',
|
|
'gnome-xkb-info.c',
|
|
]
|
|
|
|
libgnome_desktop_base_private_sources = [
|
|
'gnome-datetime-source.c',
|
|
'gnome-desktop-thumbnail-script.c',
|
|
'gnome-gettext-portable.c',
|
|
]
|
|
|
|
libgnome_desktop_base_headers = [
|
|
@@ -95,60 +101,61 @@ libgnome_desktop_base_headers = [
|
|
'gnome-xkb-info.h',
|
|
]
|
|
|
|
if get_option('build_gtk4')
|
|
install_headers(libgnome_desktop_base_headers,
|
|
subdir: 'gnome-desktop-4.0/libgnome-desktop'
|
|
)
|
|
|
|
base_deps = [
|
|
gdk_pixbuf_dep,
|
|
glib_dep,
|
|
gio_dep,
|
|
gio_unix_dep,
|
|
libsystemd_dep,
|
|
schemas_dep,
|
|
xkb_config_dep,
|
|
xkbregistry_dep,
|
|
iso_codes_dep,
|
|
udev_dep,
|
|
seccomp_dep,
|
|
m_dep,
|
|
rt_dep,
|
|
]
|
|
|
|
libgnome_desktop_base = library('gnome-desktop-4',
|
|
sources: [
|
|
non_latin_input_sources,
|
|
libgnome_desktop_base_sources,
|
|
libgnome_desktop_base_private_sources,
|
|
dbus_idle_built_sources,
|
|
+ dbus_localed_built_sources,
|
|
],
|
|
dependencies: base_deps,
|
|
soversion: soversion,
|
|
version: libversion,
|
|
c_args: libargs,
|
|
link_args: base_ldflags,
|
|
install: true,
|
|
include_directories: [
|
|
include_directories('.'),
|
|
include_directories('..'),
|
|
],
|
|
)
|
|
|
|
if get_option('introspection')
|
|
libgnome_desktop_base_gir = gnome.generate_gir(libgnome_desktop_base,
|
|
sources: [libgnome_desktop_base_headers, libgnome_desktop_base_sources],
|
|
export_packages: 'gnome-desktop-4',
|
|
namespace: 'GnomeDesktop',
|
|
nsversion: '4.0',
|
|
includes: ['GObject-2.0', 'Gio-2.0', 'GDesktopEnums-3.0', 'GdkPixbuf-2.0'],
|
|
extra_args: ['-DGNOME_DESKTOP_USE_UNSTABLE_API', '--quiet', '--warn-all'],
|
|
identifier_prefix: 'Gnome',
|
|
symbol_prefix: 'gnome',
|
|
install: true,
|
|
)
|
|
endif
|
|
|
|
pkg.generate(
|
|
libgnome_desktop_base,
|
|
requires: ['gsettings-desktop-schemas'],
|
|
@@ -172,60 +179,61 @@ if get_option('build_gtk4')
|
|
)
|
|
|
|
subdir('gnome-bg')
|
|
subdir('gnome-rr')
|
|
endif
|
|
|
|
### Legacy ###
|
|
if get_option('legacy_library')
|
|
introspection_sources = [
|
|
'gnome-desktop-version.c',
|
|
'gnome-desktop-thumbnail.c',
|
|
'gnome-bg.c',
|
|
'gnome-bg-slide-show.c',
|
|
'gnome-bg-crossfade.c',
|
|
'gnome-rr.c',
|
|
'gnome-rr-config.c',
|
|
'gnome-rr-output-info.c',
|
|
'gnome-systemd.c',
|
|
'gnome-pnp-ids.c',
|
|
'gnome-wall-clock.c',
|
|
'gnome-xkb-info.c',
|
|
'gnome-idle-monitor.c',
|
|
'gnome-languages.c',
|
|
]
|
|
|
|
libgnome_desktop_sources = [
|
|
non_latin_input_sources,
|
|
introspection_sources,
|
|
dbus_xrandr_built_sources,
|
|
dbus_idle_built_sources,
|
|
+ dbus_localed_built_sources,
|
|
'gnome-datetime-source.c',
|
|
'gnome-desktop-thumbnail-script.c',
|
|
'gnome-gettext-portable.c',
|
|
]
|
|
|
|
libgnome_desktop_headers = [
|
|
gnome_desktop_header_file,
|
|
'gnome-bg.h',
|
|
'gnome-bg-crossfade.h',
|
|
'gnome-bg-slide-show.h',
|
|
'gnome-desktop-thumbnail.h',
|
|
'gnome-rr.h',
|
|
'gnome-rr-config.h',
|
|
'gnome-systemd.h',
|
|
'gnome-pnp-ids.h',
|
|
'gnome-wall-clock.h',
|
|
'gnome-xkb-info.h',
|
|
'gnome-idle-monitor.h',
|
|
'gnome-languages.h',
|
|
]
|
|
|
|
install_headers(libgnome_desktop_headers,
|
|
subdir: 'gnome-desktop-3.0/libgnome-desktop'
|
|
)
|
|
|
|
gnome_desktop_deps = [
|
|
gdk_pixbuf_dep,
|
|
gtk3_dep,
|
|
glib_dep,
|
|
gio_dep,
|
|
diff --git a/libgnome-desktop/org.freedesktop.locale1.xml b/libgnome-desktop/org.freedesktop.locale1.xml
|
|
new file mode 100644
|
|
index 00000000..bc23d3a1
|
|
--- /dev/null
|
|
+++ b/libgnome-desktop/org.freedesktop.locale1.xml
|
|
@@ -0,0 +1,38 @@
|
|
+<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
|
|
+"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
|
|
+<node>
|
|
+ <interface name="org.freedesktop.locale1">
|
|
+ <property name="Locale" type="as" access="read">
|
|
+ </property>
|
|
+ <property name="X11Layout" type="s" access="read">
|
|
+ </property>
|
|
+ <property name="X11Model" type="s" access="read">
|
|
+ </property>
|
|
+ <property name="X11Variant" type="s" access="read">
|
|
+ </property>
|
|
+ <property name="X11Options" type="s" access="read">
|
|
+ </property>
|
|
+ <property name="VConsoleKeymap" type="s" access="read">
|
|
+ </property>
|
|
+ <property name="VConsoleKeymapToggle" type="s" access="read">
|
|
+ </property>
|
|
+ <method name="SetLocale">
|
|
+ <arg type="as" direction="in"/>
|
|
+ <arg type="b" direction="in"/>
|
|
+ </method>
|
|
+ <method name="SetVConsoleKeyboard">
|
|
+ <arg type="s" direction="in"/>
|
|
+ <arg type="s" direction="in"/>
|
|
+ <arg type="b" direction="in"/>
|
|
+ <arg type="b" direction="in"/>
|
|
+ </method>
|
|
+ <method name="SetX11Keyboard">
|
|
+ <arg type="s" direction="in"/>
|
|
+ <arg type="s" direction="in"/>
|
|
+ <arg type="s" direction="in"/>
|
|
+ <arg type="s" direction="in"/>
|
|
+ <arg type="b" direction="in"/>
|
|
+ <arg type="b" direction="in"/>
|
|
+ </method>
|
|
+ </interface>
|
|
+</node>
|
|
--
|
|
2.41.0
|
|
|