gnome-shell/js/misc/dependencies.js
Florian Müllner 8a8539ee67 js: Port Config to ESM
The Config module is shared between the main process, D-Bus
services and tests, which previously prevented it from being
ported to ESM.

The previous commit removed the last outstanding blocker, so
we can now port the last remaining module.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2880>
2023-08-10 17:42:23 +00:00

75 lines
2.0 KiB
JavaScript

import gi from 'gi';
/**
* Required dependencies
*/
import 'gi://AccountsService?version=1.0';
import 'gi://Atk?version=1.0';
import 'gi://Atspi?version=2.0';
import 'gi://Gcr?version=4';
import 'gi://Gdk?version=4.0';
import 'gi://Gdm?version=1.0';
import 'gi://Geoclue?version=2.0';
import 'gi://Gio?version=2.0';
import 'gi://GDesktopEnums?version=3.0';
import 'gi://GdkPixbuf?version=2.0';
import 'gi://GnomeBG?version=4.0';
import 'gi://GnomeDesktop?version=4.0';
import 'gi://Graphene?version=1.0';
import 'gi://GWeather?version=4.0';
import 'gi://IBus?version=1.0';
import 'gi://Pango?version=1.0';
import 'gi://Polkit?version=1.0';
import 'gi://PolkitAgent?version=1.0';
import 'gi://Rsvg?version=2.0';
import 'gi://Soup?version=3.0';
import 'gi://UPowerGlib?version=1.0';
import * as Config from './config.js';
// Meta-related dependencies use a shared version
// from the compile-time config.
gi.require('Meta', Config.LIBMUTTER_API_VERSION);
gi.require('Clutter', Config.LIBMUTTER_API_VERSION);
gi.require('Cogl', Config.LIBMUTTER_API_VERSION);
gi.require('Shell', Config.LIBMUTTER_API_VERSION);
gi.require('St', Config.LIBMUTTER_API_VERSION);
/**
* Compile-time optional dependencies
*/
if (Config.HAVE_BLUETOOTH)
gi.require('GnomeBluetooth', '3.0');
else
console.debug('GNOME Shell was compiled without GNOME Bluetooth support');
if (Config.HAVE_NETWORKMANAGER) {
gi.require('NM', '1.0');
gi.require('NMA4', '1.0');
} else {
console.debug('GNOME Shell was compiled without Network Manager support');
}
/**
* Runtime optional dependencies
*/
try {
// Malcontent is optional, so catch any errors loading it
gi.require('Malcontent', '0');
} catch {
console.debug('Malcontent is not available, parental controls integration will be disabled.');
}
try {
// Telepathy is optional, so catch any errors loading it
gi.require('TelepathyGLib', '0.12');
gi.require('TelepathyLogger', '0.2');
} catch {
console.debug('Telepathy is not available, chat integration will be disabled.');
}