build: Make D-Bus codegen declarative
This makes it a bit less cumbersome to add more D-Bus codegen interfaces. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2811>
This commit is contained in:
parent
8b92a00dd1
commit
bef9cecb81
153
src/meson.build
153
src/meson.build
@ -857,27 +857,24 @@ if mutter_private_enum_sources.length() > 0
|
|||||||
mutter_built_sources += mutter_private_enum_types
|
mutter_built_sources += mutter_private_enum_types
|
||||||
endif
|
endif
|
||||||
|
|
||||||
dbus_display_config_built_sources = gnome.gdbus_codegen('meta-dbus-display-config',
|
dbus_interfaces = [
|
||||||
join_paths(dbus_interfaces_dir, 'org.gnome.Mutter.DisplayConfig.xml'),
|
{
|
||||||
interface_prefix: 'org.gnome.Mutter.',
|
'name': 'meta-dbus-display-config',
|
||||||
namespace: 'MetaDBus',
|
'interface': 'org.gnome.Mutter.DisplayConfig.xml',
|
||||||
)
|
'prefix': 'org.gnome.Mutter.',
|
||||||
mutter_built_sources += dbus_display_config_built_sources
|
},
|
||||||
|
{
|
||||||
dbus_idle_monitor_built_sources = gnome.gdbus_codegen('meta-dbus-idle-monitor',
|
'name': 'meta-dbus-idle-monitor',
|
||||||
join_paths(dbus_interfaces_dir, 'org.gnome.Mutter.IdleMonitor.xml'),
|
'interface': 'org.gnome.Mutter.IdleMonitor.xml',
|
||||||
interface_prefix: 'org.gnome.Mutter.',
|
'prefix': 'org.gnome.Mutter.',
|
||||||
namespace: 'MetaDBus',
|
'object_manager': true,
|
||||||
object_manager: true,
|
},
|
||||||
)
|
{
|
||||||
mutter_built_sources += dbus_idle_monitor_built_sources
|
'name': 'meta-dbus-input-mapping',
|
||||||
|
'interface': 'org.gnome.Mutter.InputMapping.xml',
|
||||||
dbus_input_mapping_built_sources = gnome.gdbus_codegen('meta-dbus-input-mapping',
|
'prefix': 'org.gnome.Mutter.',
|
||||||
join_paths(dbus_interfaces_dir, 'org.gnome.Mutter.InputMapping.xml'),
|
},
|
||||||
interface_prefix: 'org.gnome.Mutter.',
|
]
|
||||||
namespace: 'MetaDBus',
|
|
||||||
)
|
|
||||||
mutter_built_sources += dbus_input_mapping_built_sources
|
|
||||||
|
|
||||||
if have_profiler
|
if have_profiler
|
||||||
mutter_sources += [
|
mutter_sources += [
|
||||||
@ -885,13 +882,14 @@ if have_profiler
|
|||||||
'core/meta-profiler.h',
|
'core/meta-profiler.h',
|
||||||
]
|
]
|
||||||
|
|
||||||
sysprof3_dbus_file = join_paths(sysprof_dbus_interfaces_dir, 'org.gnome.Sysprof3.Profiler.xml')
|
dbus_interfaces += [
|
||||||
dbus_sysprof3_profiler_built_sources = gnome.gdbus_codegen('meta-dbus-sysprof3-profiler',
|
{
|
||||||
sysprof3_dbus_file,
|
'name': 'meta-dbus-sysprof3-profiler',
|
||||||
interface_prefix: 'org.gnome.',
|
'interface': 'org.gnome.Sysprof3.Profiler.xml',
|
||||||
namespace: 'MetaDBus',
|
'prefix': 'org.gnome.',
|
||||||
)
|
'directory': sysprof_dbus_interfaces_dir,
|
||||||
mutter_built_sources += dbus_sysprof3_profiler_built_sources
|
},
|
||||||
|
]
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if have_native_backend
|
if have_native_backend
|
||||||
@ -904,50 +902,79 @@ if have_native_backend
|
|||||||
)
|
)
|
||||||
mutter_built_sources += default_modes_h
|
mutter_built_sources += default_modes_h
|
||||||
|
|
||||||
dbus_login1_built_sources = gnome.gdbus_codegen('meta-dbus-login1',
|
dbus_interfaces += [
|
||||||
join_paths(dbus_interfaces_dir, 'org.freedesktop.login1.xml'),
|
{
|
||||||
interface_prefix: 'org.freedesktop.',
|
'name': 'meta-dbus-login1',
|
||||||
namespace: 'MetaDBus',
|
'interface': 'org.freedesktop.login1.xml',
|
||||||
)
|
'prefix': 'org.freedesktop.',
|
||||||
mutter_built_sources += dbus_login1_built_sources
|
},
|
||||||
|
]
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if have_remote_desktop
|
if have_remote_desktop
|
||||||
dbus_remote_desktop_built_sources = gnome.gdbus_codegen('meta-dbus-remote-desktop',
|
dbus_interfaces += [
|
||||||
join_paths(dbus_interfaces_dir, 'org.gnome.Mutter.RemoteDesktop.xml'),
|
{
|
||||||
interface_prefix: 'org.gnome.Mutter.',
|
'name': 'meta-dbus-remote-desktop',
|
||||||
namespace: 'MetaDBus',
|
'interface': 'org.gnome.Mutter.RemoteDesktop.xml',
|
||||||
)
|
'prefix': 'org.gnome.Mutter.',
|
||||||
mutter_built_sources += dbus_remote_desktop_built_sources
|
},
|
||||||
|
{
|
||||||
dbus_screen_cast_built_sources = gnome.gdbus_codegen('meta-dbus-screen-cast',
|
'name': 'meta-dbus-screen-cast',
|
||||||
join_paths(dbus_interfaces_dir, 'org.gnome.Mutter.ScreenCast.xml'),
|
'interface': 'org.gnome.Mutter.ScreenCast.xml',
|
||||||
interface_prefix: 'org.gnome.Mutter.',
|
'prefix': 'org.gnome.Mutter.',
|
||||||
namespace: 'MetaDBus',
|
},
|
||||||
)
|
]
|
||||||
mutter_built_sources += dbus_screen_cast_built_sources
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
dbus_rtkit_built_sources = gnome.gdbus_codegen('meta-dbus-rtkit1',
|
dbus_interfaces += [
|
||||||
join_paths(dbus_interfaces_dir, 'org.freedesktop.RealtimeKit1.xml'),
|
{
|
||||||
interface_prefix: 'org.freedesktop.',
|
'name': 'meta-dbus-rtkit1',
|
||||||
namespace: 'MetaDBus',
|
'interface': 'org.freedesktop.RealtimeKit1.xml',
|
||||||
)
|
'prefix': 'org.freedesktop.',
|
||||||
mutter_built_sources += dbus_rtkit_built_sources
|
},
|
||||||
|
{
|
||||||
|
'name': 'meta-dbus-gsd-color',
|
||||||
|
'interface': 'org.gnome.SettingsDaemon.Color.xml',
|
||||||
|
'prefix': 'org.gnome.',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'name': 'meta-dbus-gsd-power-screen',
|
||||||
|
'interface': 'org.gnome.SettingsDaemon.Power.Screen.xml',
|
||||||
|
'prefix': 'org.gnome.',
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
dbus_gsd_color_built_sources = gnome.gdbus_codegen('meta-dbus-gsd-color',
|
built_dbus_sources = {}
|
||||||
join_paths(dbus_interfaces_dir, 'org.gnome.SettingsDaemon.Color.xml'),
|
|
||||||
interface_prefix: 'org.gnome.',
|
|
||||||
namespace: 'MetaDBus',
|
|
||||||
)
|
|
||||||
mutter_built_sources += dbus_gsd_color_built_sources
|
|
||||||
|
|
||||||
dbus_gsd_power_screen_built_sources = gnome.gdbus_codegen('meta-dbus-gsd-power-screen',
|
foreach dbus_interface: dbus_interfaces
|
||||||
join_paths(dbus_interfaces_dir, 'org.gnome.SettingsDaemon.Power.Screen.xml'),
|
name = dbus_interface['name']
|
||||||
interface_prefix: 'org.gnome.',
|
|
||||||
|
interface = dbus_interface['interface']
|
||||||
|
if dbus_interface.has_key('directory')
|
||||||
|
directory = dbus_interface['directory']
|
||||||
|
else
|
||||||
|
directory = dbus_interfaces_dir
|
||||||
|
endif
|
||||||
|
interface_file = join_paths(directory, interface)
|
||||||
|
|
||||||
|
prefix = dbus_interface['prefix']
|
||||||
|
|
||||||
|
if dbus_interface.has_key('object_manager')
|
||||||
|
object_manager = dbus_interface['object_manager']
|
||||||
|
else
|
||||||
|
object_manager = false
|
||||||
|
endif
|
||||||
|
|
||||||
|
dbus_sources = gnome.gdbus_codegen(name, interface_file,
|
||||||
|
interface_prefix: prefix,
|
||||||
namespace: 'MetaDBus',
|
namespace: 'MetaDBus',
|
||||||
|
object_manager: object_manager,
|
||||||
)
|
)
|
||||||
mutter_built_sources += dbus_gsd_power_screen_built_sources
|
built_dbus_sources += {
|
||||||
|
name: dbus_sources,
|
||||||
|
}
|
||||||
|
mutter_built_sources += dbus_sources
|
||||||
|
endforeach
|
||||||
|
|
||||||
wayland_protocol_server_headers = []
|
wayland_protocol_server_headers = []
|
||||||
wayland_protocol_client_headers = []
|
wayland_protocol_client_headers = []
|
||||||
|
@ -253,8 +253,8 @@ if have_native_tests
|
|||||||
screen_cast_client = executable('mutter-screen-cast-client',
|
screen_cast_client = executable('mutter-screen-cast-client',
|
||||||
sources: [
|
sources: [
|
||||||
'screen-cast-client.c',
|
'screen-cast-client.c',
|
||||||
dbus_remote_desktop_built_sources,
|
built_dbus_sources['meta-dbus-remote-desktop'],
|
||||||
dbus_screen_cast_built_sources,
|
built_dbus_sources['meta-dbus-screen-cast'],
|
||||||
],
|
],
|
||||||
include_directories: tests_includes,
|
include_directories: tests_includes,
|
||||||
c_args: [
|
c_args: [
|
||||||
|
Loading…
Reference in New Issue
Block a user