dbusServices/screencast: Install unconditionally

We currently decide at build time whether to include screencast
support, based on whether the required gst/pipewire library headers
are installed.

That check is imprecise, because having the library headers available
at build time doesn't necessarily mean that the libraries are there
at runtime, or that the corresponding typelibs are installed.

It makes more sense to check the requirements at runtime, so prepare
for that by installing the screencast service unconditionally, but
bail out early if the dependencies aren't met.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2297>
This commit is contained in:
Florian Müllner 2022-05-18 16:43:45 +02:00 committed by Marge Bot
parent 88441c35c9
commit a8c5d77872
2 changed files with 6 additions and 7 deletions

View File

@ -6,15 +6,10 @@ launcherconf.set('libdir', libdir)
dbus_services = { dbus_services = {
'org.gnome.Shell.Extensions': 'extensions', 'org.gnome.Shell.Extensions': 'extensions',
'org.gnome.Shell.Notifications': 'notifications', 'org.gnome.Shell.Notifications': 'notifications',
'org.gnome.Shell.Screencast': 'screencast',
'org.gnome.ScreenSaver': 'screensaver', 'org.gnome.ScreenSaver': 'screensaver',
} }
if enable_recorder
dbus_services += {
'org.gnome.Shell.Screencast': 'screencast',
}
endif
config_dir = '@0@/..'.format(meson.current_build_dir()) config_dir = '@0@/..'.format(meson.current_build_dir())
foreach service, dir : dbus_services foreach service, dir : dbus_services

View File

@ -1,9 +1,13 @@
/* exported main */ /* exported main */
const Config = imports.misc.config;
const { DBusService } = imports.dbusService; const { DBusService } = imports.dbusService;
const { ScreencastService } = imports.screencastService;
function main() { function main() {
if (!Config.HAVE_RECORDER)
return;
const { ScreencastService } = imports.screencastService;
const service = new DBusService( const service = new DBusService(
'org.gnome.Shell.Screencast', 'org.gnome.Shell.Screencast',
new ScreencastService()); new ScreencastService());