From e2e3694cbd5fbdef728c3a65f8ecfea7237f406e Mon Sep 17 00:00:00 2001 From: Evan Welsh Date: Sun, 9 Jul 2023 23:21:23 -0700 Subject: [PATCH] environment: Split dependencies loading into a new file Once environment.js is an ES module we need to ensure we can dynamically specify the version for required GI dependencies such as Clutter. Moving dependency version setup to dependencies.js ensures gi.require calls are done before environment.js imports any utilities. Part-of: --- js/js-resources.gresource.xml | 1 + js/misc/dependencies.js | 33 +++++++++++++++++++++++++++++++++ js/ui/environment.js | 33 ++------------------------------- 3 files changed, 36 insertions(+), 31 deletions(-) create mode 100644 js/misc/dependencies.js diff --git a/js/js-resources.gresource.xml b/js/js-resources.gresource.xml index 6aa88ce21..476671ce0 100644 --- a/js/js-resources.gresource.xml +++ b/js/js-resources.gresource.xml @@ -17,6 +17,7 @@ misc/fileUtils.js misc/dateUtils.js misc/dbusUtils.js + misc/dependencies.js misc/gnomeSession.js misc/history.js misc/ibusManager.js diff --git a/js/misc/dependencies.js b/js/misc/dependencies.js new file mode 100644 index 000000000..92f893d60 --- /dev/null +++ b/js/misc/dependencies.js @@ -0,0 +1,33 @@ +imports.gi.versions.AccountsService = '1.0'; +imports.gi.versions.Atk = '1.0'; +imports.gi.versions.Atspi = '2.0'; +imports.gi.versions.Gcr = '4'; +imports.gi.versions.Gdk = '4.0'; +imports.gi.versions.Gdm = '1.0'; +imports.gi.versions.Geoclue = '2.0'; +imports.gi.versions.Gio = '2.0'; +imports.gi.versions.GDesktopEnums = '3.0'; +imports.gi.versions.GdkPixbuf = '2.0'; +imports.gi.versions.GnomeBluetooth = '3.0'; +imports.gi.versions.GnomeBG = '4.0'; +imports.gi.versions.GnomeDesktop = '4.0'; +imports.gi.versions.Graphene = '1.0'; +imports.gi.versions.GWeather = '4.0'; +imports.gi.versions.IBus = '1.0'; +imports.gi.versions.Malcontent = '0'; +imports.gi.versions.NM = '1.0'; +imports.gi.versions.NMA4 = '1.0'; +imports.gi.versions.Pango = '1.0'; +imports.gi.versions.Polkit = '1.0'; +imports.gi.versions.PolkitAgent = '1.0'; +imports.gi.versions.Rsvg = '2.0'; +imports.gi.versions.Soup = '3.0'; +imports.gi.versions.TelepathyGLib = '0.12'; +imports.gi.versions.TelepathyLogger = '0.2'; +imports.gi.versions.UPowerGlib = '1.0'; + +const Config = imports.misc.config; + +imports.gi.versions.Meta = Config.LIBMUTTER_API_VERSION; +imports.gi.versions.Clutter = Config.LIBMUTTER_API_VERSION; +imports.gi.versions.Cogl = Config.LIBMUTTER_API_VERSION; diff --git a/js/ui/environment.js b/js/ui/environment.js index aee0f8ae5..7e873495e 100644 --- a/js/ui/environment.js +++ b/js/ui/environment.js @@ -1,37 +1,8 @@ -// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- /* exported init */ -const Config = imports.misc.config; +// Load all required dependencies with the correct versions +imports.misc.dependencies; // eslint-disable-line no-unused-expressions -imports.gi.versions.AccountsService = '1.0'; -imports.gi.versions.Atk = '1.0'; -imports.gi.versions.Atspi = '2.0'; -imports.gi.versions.Clutter = Config.LIBMUTTER_API_VERSION; -imports.gi.versions.Cogl = Config.LIBMUTTER_API_VERSION; -imports.gi.versions.Gcr = '4'; -imports.gi.versions.Gdk = '4.0'; -imports.gi.versions.Gdm = '1.0'; -imports.gi.versions.Geoclue = '2.0'; -imports.gi.versions.Gio = '2.0'; -imports.gi.versions.GDesktopEnums = '3.0'; -imports.gi.versions.GdkPixbuf = '2.0'; -imports.gi.versions.GnomeBluetooth = '3.0'; -imports.gi.versions.GnomeBG = '4.0'; -imports.gi.versions.GnomeDesktop = '4.0'; -imports.gi.versions.Graphene = '1.0'; -imports.gi.versions.GWeather = '4.0'; -imports.gi.versions.IBus = '1.0'; -imports.gi.versions.Malcontent = '0'; -imports.gi.versions.NM = '1.0'; -imports.gi.versions.NMA4 = '1.0'; -imports.gi.versions.Pango = '1.0'; -imports.gi.versions.Polkit = '1.0'; -imports.gi.versions.PolkitAgent = '1.0'; -imports.gi.versions.Rsvg = '2.0'; -imports.gi.versions.Soup = '3.0'; -imports.gi.versions.TelepathyGLib = '0.12'; -imports.gi.versions.TelepathyLogger = '0.2'; -imports.gi.versions.UPowerGlib = '1.0'; const Clutter = imports.gi.Clutter; const Gdk = imports.gi.Gdk;