diff --git a/configure.ac b/configure.ac index 04e21597b..3652c6f60 100644 --- a/configure.ac +++ b/configure.ac @@ -41,6 +41,15 @@ GLIB_GSETTINGS AM_PATH_PYTHON([3]) AC_SUBST(PYTHON) +# We depend on a specific version of the libmutter API. The mutter variants of +# the Cogl and Clutter libraries also use this API version. +LIBMUTTER_API_VERSION=0 + +LIBMUTTER=libmutter-$LIBMUTTER_API_VERSION +LIBMUTTER_COGL=mutter-cogl-$LIBMUTTER_API_VERSION +LIBMUTTER_COGL_PANGO=mutter-cogl-pango-$LIBMUTTER_API_VERSION +LIBMUTTER_CLUTTER=mutter-clutter-$LIBMUTTER_API_VERSION + # We need at least this, since gst_plugin_register_static() was added # in 0.10.16, but nothing older than 0.10.21 has been tested. GSTREAMER_MIN_VERSION=0.11.92 @@ -52,7 +61,7 @@ if $PKG_CONFIG --exists gstreamer-1.0 '>=' $GSTREAMER_MIN_VERSION ; then AC_MSG_RESULT(yes) build_recorder=true recorder_modules="gstreamer-1.0 gstreamer-base-1.0 x11 gtk+-3.0" - PKG_CHECK_MODULES(TEST_SHELL_RECORDER, $recorder_modules mutter-clutter-1.0) + PKG_CHECK_MODULES(TEST_SHELL_RECORDER, $recorder_modules $LIBMUTTER_CLUTTER) else AC_MSG_RESULT(no) fi @@ -74,7 +83,6 @@ AS_IF([test x$enable_systemd != xno], [ AC_MSG_RESULT($enable_systemd) -CLUTTER_MIN_VERSION=1.21.5 GOBJECT_INTROSPECTION_MIN_VERSION=1.49.1 GJS_MIN_VERSION=1.47.0 MUTTER_MIN_VERSION=3.23.3 @@ -98,8 +106,8 @@ SHARED_PCS="gio-unix-2.0 >= $GIO_MIN_VERSION gjs-1.0 >= $GJS_MIN_VERSION $recorder_modules gdk-x11-3.0 libsoup-2.4 - mutter-clutter-1.0 >= $CLUTTER_MIN_VERSION - mutter-cogl-pango-1.0 + $LIBMUTTER_CLUTTER >= $MUTTER_MIN_VERSION + $LIBMUTTER_COGL_PANGO libstartup-notification-1.0 >= $STARTUP_NOTIFICATION_MIN_VERSION gobject-introspection-1.0 >= $GOBJECT_INTROSPECTION_MIN_VERSION libcanberra libcanberra-gtk3 @@ -111,16 +119,18 @@ if test x$have_systemd = xyes; then fi PKG_CHECK_MODULES(GNOME_SHELL, $SHARED_PCS) -PKG_CHECK_MODULES(MUTTER, libmutter >= $MUTTER_MIN_VERSION) +PKG_CHECK_MODULES(MUTTER, $LIBMUTTER >= $MUTTER_MIN_VERSION) PKG_CHECK_MODULES(GNOME_SHELL_JS, gio-2.0 gjs-1.0 >= $GJS_MIN_VERSION) -PKG_CHECK_MODULES(ST, mutter-clutter-1.0 gtk+-3.0 libcroco-0.6 >= 0.6.8 x11) +PKG_CHECK_MODULES(ST, $LIBMUTTER_CLUTTER gtk+-3.0 libcroco-0.6 >= 0.6.8 x11) PKG_CHECK_MODULES(SHELL_PERF_HELPER, gtk+-3.0 gio-2.0) PKG_CHECK_MODULES(SHELL_HOTPLUG_SNIFFER, gio-2.0 gdk-pixbuf-2.0) -PKG_CHECK_MODULES(TRAY, mutter-clutter-1.0 gtk+-3.0) +PKG_CHECK_MODULES(TRAY, $LIBMUTTER_CLUTTER gtk+-3.0) PKG_CHECK_MODULES(GVC, libpulse >= $PULSE_MIN_VERS libpulse-mainloop-glib gobject-2.0) PKG_CHECK_MODULES(DESKTOP_SCHEMAS, gsettings-desktop-schemas >= 3.21.3) +AC_SUBST(LIBMUTTER_API_VERSION) + AC_ARG_ENABLE(browser-plugin, [AS_HELP_STRING([--enable-browser-plugin], [Enable browser plugin [default=yes]])],, @@ -145,10 +155,10 @@ AC_SUBST([GNOME_KEYBINDINGS_KEYSDIR]) GOBJECT_INTROSPECTION_CHECK([$GOBJECT_INTROSPECTION_MIN_VERSION]) -MUTTER_GIR_DIR=`$PKG_CONFIG --variable=girdir libmutter` +MUTTER_GIR_DIR=`$PKG_CONFIG --variable=girdir $LIBMUTTER` AC_SUBST(MUTTER_GIR_DIR) -MUTTER_TYPELIB_DIR=`$PKG_CONFIG --variable=typelibdir libmutter` +MUTTER_TYPELIB_DIR=`$PKG_CONFIG --variable=typelibdir $LIBMUTTER` AC_SUBST(MUTTER_TYPELIB_DIR) GJS_CONSOLE=`$PKG_CONFIG --variable=gjs_console gjs-1.0` diff --git a/js/Makefile.am b/js/Makefile.am index 6d9b85b08..6369c7502 100644 --- a/js/Makefile.am +++ b/js/Makefile.am @@ -11,6 +11,7 @@ misc/config.js: misc/config.js.in Makefile -e "s|[@]datadir@|$(datadir)|g" \ -e "s|[@]libexecdir@|$(libexecdir)|g" \ -e "s|[@]sysconfdir@|$(sysconfdir)|g" \ + -e "s|[@]LIBMUTTER_API_VERSION@|$(LIBMUTTER_API_VERSION)|g" \ $< > $@ js_resource_files = $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir) --sourcedir=$(builddir) --generate-dependencies $(srcdir)/js-resources.gresource.xml) diff --git a/js/misc/config.js.in b/js/misc/config.js.in index 9c4795dc4..82f20c6b4 100644 --- a/js/misc/config.js.in +++ b/js/misc/config.js.in @@ -15,3 +15,5 @@ const LOCALEDIR = '@datadir@/locale'; /* other standard directories */ const LIBEXECDIR = '@libexecdir@'; const SYSCONFDIR = '@sysconfdir@'; +/* g-i package versions */ +const LIBMUTTER_API_VERSION = '@LIBMUTTER_API_VERSION@' diff --git a/js/ui/environment.js b/js/ui/environment.js index 68ddaa783..cc1362166 100644 --- a/js/ui/environment.js +++ b/js/ui/environment.js @@ -1,6 +1,8 @@ // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- -imports.gi.versions.Clutter = '1.0'; +const Config = imports.misc.config; + +imports.gi.versions.Clutter = Config.LIBMUTTER_API_VERSION; imports.gi.versions.Gio = '2.0'; imports.gi.versions.Gdk = '3.0'; imports.gi.versions.GdkPixbuf = '2.0'; diff --git a/src/Makefile.am b/src/Makefile.am index 506bf912c..3347a06a5 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -335,7 +335,7 @@ INTROSPECTION_GIRS += ShellMenu-0.1.gir CLEANFILES += ShellMenu-0.1.gir Shell-0.1.gir: gnome-shell St-1.0.gir ShellMenu-0.1.gir -Shell_0_1_gir_INCLUDES = Clutter-1.0 ClutterX11-1.0 Meta-3.0 TelepathyGLib-0.12 Soup-2.4 +Shell_0_1_gir_INCLUDES = Clutter-$(LIBMUTTER_API_VERSION) ClutterX11-$(LIBMUTTER_API_VERSION) Meta-$(LIBMUTTER_API_VERSION) TelepathyGLib-0.12 Soup-2.4 if HAVE_NETWORKMANAGER Shell_0_1_gir_INCLUDES += NetworkManager-1.0 NMClient-1.0 endif @@ -350,7 +350,7 @@ INTROSPECTION_GIRS += Shell-0.1.gir CLEANFILES += Shell-0.1.gir St-1.0.gir: libst-1.0.la -St_1_0_gir_INCLUDES = Clutter-1.0 Gtk-3.0 +St_1_0_gir_INCLUDES = Clutter-$(LIBMUTTER_API_VERSION) Gtk-3.0 St_1_0_gir_CFLAGS = $(st_cflags) -DST_COMPILATION St_1_0_gir_LIBS = libst-1.0.la St_1_0_gir_FILES = $(filter-out %-private.h $(st_non_gir_sources), $(addprefix $(srcdir)/,$(st_source_h))) \