meson: Stop using fallback: kwarg for deps that don't need it
authorNirbheek Chauhan <nirbheek@centricular.com>
Sun, 18 Dec 2022 01:30:44 +0000 (07:00 +0530)
committerNirbheek Chauhan <nirbheek@centricular.com>
Sun, 18 Dec 2022 21:39:11 +0000 (03:09 +0530)
Subprojects that use meson.override_dependency() do not require the
caller to provide the dependency variable name inside the subproject.

We also don't want to provide the *subproject* name, because the
subproject name can be `pango-1.50.12` instead of `pango` when using
wrap-file to download the tarball instead of using wrap-git. This
causes the pango subproject to be executed twice when using gtk as
a subproject inside gstreamer (which uses pango-1.50.12 as
a wrap-file).

All the dependencies we use can be switched in this way, but the
remaining ones need to be changed to use meson.override_dependency()
first.

12 files changed:
meson.build
subprojects/cairo.wrap
subprojects/fribidi.wrap [new file with mode: 0644]
subprojects/gdk-pixbuf.wrap
subprojects/glib.wrap
subprojects/graphene.wrap
subprojects/harfbuzz.wrap
subprojects/libcloudproviders.wrap
subprojects/libepoxy.wrap
subprojects/pango.wrap
subprojects/sysprof.wrap
subprojects/wayland.wrap

index 86999b9d335a86d6be5c2df27f8e7ac8b2c5a67d..5a461c0336ebcfc3dc8a0db01fa94be9a4369ce2 100644 (file)
@@ -12,7 +12,7 @@ project('gtk', 'c',
 
 glib_req           = '>= 2.72.0'
 pango_req          = '>= 1.50.0' # keep this in sync with .gitlab-ci/test-msys.sh
-harfbuzz_req      = '>= 2.6.0'
+harfbuzz_req        = '>= 2.6.0'
 fribidi_req        = '>= 0.19.7'
 cairo_req          = '>= 1.14.0'
 gdk_pixbuf_req     = '>= 2.30.0'
@@ -368,65 +368,42 @@ gtkinc = include_directories('gtk')
 testinc = include_directories('tests')
 
 # Dependencies
-glib_dep       = dependency('glib-2.0', version: glib_req,
-                            fallback : ['glib', 'libglib_dep'])
-gobject_dep    = dependency('gobject-2.0', version: glib_req,
-                            fallback : ['glib', 'libgobject_dep'])
+glib_dep       = dependency('glib-2.0', version: glib_req)
+gobject_dep    = dependency('gobject-2.0', version: glib_req)
 if os_win32
-  giowin32_dep = dependency('gio-windows-2.0', version: glib_req, required: win32_enabled,
-                            fallback : ['glib', 'libgio_dep'])
+  giowin32_dep = dependency('gio-windows-2.0', version: glib_req, required: win32_enabled)
 endif
 if os_unix
-  giounix_dep  = dependency('gio-unix-2.0', version: glib_req, required: false,
-                            fallback : ['glib', 'libgio_dep'])
+  giounix_dep  = dependency('gio-unix-2.0', version: glib_req, required: false)
 endif
-gmodule_dep    = dependency('gmodule-2.0', version: glib_req,
-                            fallback : ['glib', 'libgmodule_dep'])
+gmodule_dep    = dependency('gmodule-2.0', version: glib_req)
 cairo_dep      = dependency('cairo', version: cairo_req,
-                            fallback : ['cairo', 'libcairo_dep'],
                             default_options: ['zlib=enabled', 'tests=disabled'])
-cairogobj_dep  = dependency('cairo-gobject', version: cairo_req,
-                            fallback : ['cairo', 'libcairogobject_dep'])
-pango_dep      = dependency('pango', version: pango_req,
-                            fallback : ['pango', 'libpango_dep'])
-fribidi_dep    = dependency('fribidi', version: fribidi_req,
-                            fallback : ['fribidi', 'libfribidi_dep'])
+cairogobj_dep  = dependency('cairo-gobject', version: cairo_req)
+pango_dep      = dependency('pango', version: pango_req)
+fribidi_dep    = dependency('fribidi', version: fribidi_req)
 harfbuzz_dep   = dependency('harfbuzz', version: harfbuzz_req,
-                            fallback: ['harfbuzz', 'libharfbuzz_dep'],
                             default_options: ['coretext=enabled'])
 
 # Require PangoFT2 if on X11 or wayland
-require_pangoft2 = wayland_enabled or x11_enabled
-
-if require_pangoft2
-  pangoft_dep    = dependency('pangoft2', version: pango_req,
-                              fallback : ['pango', 'libpangoft2_dep'])
-else
-  pangoft_dep    = dependency('pangoft2', required: false)
-endif
+pangoft_dep    = dependency('pangoft2', version: pango_req,
+                            required: wayland_enabled or x11_enabled)
 
 if win32_enabled
   # for GTK_IM_CONTEXT_IME
   pangowin32_dep = dependency('pangowin32')
 endif
 
-pangocairo_dep = dependency('pangocairo', version: pango_req,
-                            fallback : ['pango', 'libpangocairo_dep'])
+pangocairo_dep = dependency('pangocairo', version: pango_req)
 pixbuf_dep     = dependency('gdk-pixbuf-2.0', version: gdk_pixbuf_req,
-                            fallback : ['gdk-pixbuf', 'gdkpixbuf_dep'],
                             default_options: ['png=enabled', 'jpeg=enabled', 'builtin_loaders=png,jpeg', 'man=false'])
-png_dep        = dependency('libpng', 'png',
-                            fallback: ['libpng', 'libpng_dep'])
-tiff_dep       = dependency('libtiff-4', 'tiff',
-                            fallback: ['libtiff', 'libtiff4_dep'])
-jpeg_dep       = dependency('libjpeg', 'jpeg',
-                            fallback: ['libjpeg-turbo', 'jpeg_dep'])
-
-epoxy_dep      = dependency('epoxy', version: epoxy_req,
-                            fallback: ['libepoxy', 'libepoxy_dep'])
+png_dep        = dependency('libpng', 'png')
+tiff_dep       = dependency('libtiff-4', 'tiff')
+jpeg_dep       = dependency('libjpeg', 'jpeg')
+
+epoxy_dep      = dependency('epoxy', version: epoxy_req)
 xkbdep         = dependency('xkbcommon', version: xkbcommon_req, required: wayland_enabled)
 graphene_dep   = dependency('graphene-gobject-1.0', version: graphene_req,
-                            fallback: ['graphene', 'graphene_dep'],
                             default_options: ['tests=false'])
 iso_codes_dep  = dependency('iso-codes', required: false)
 
@@ -506,11 +483,9 @@ cdata.set('HAVE_PANGOFT', pangoft_dep.found())
 wayland_pkgs = []
 if wayland_enabled
   wlclientdep    = dependency('wayland-client', version:  wayland_req,
-                              fallback: 'wayland',
                               default_options: ['documentation=false'])
   wlprotocolsdep = dependency('wayland-protocols', version: wayland_proto_req)
-  wlegldep       = dependency('wayland-egl',
-                              fallback: 'wayland')
+  wlegldep       = dependency('wayland-egl')
 
   wlproto_dir = wlprotocolsdep.get_variable('pkgdatadir')
 
@@ -646,10 +621,6 @@ endif
 cloudproviders_dep = dependency('cloudproviders',
   required: get_option('cloudproviders'),
   version: cloudproviders_req,
-  fallback: [
-    'libcloudproviders',
-    'libcloudproviders_dep',
-  ],
   default_options: [
     'vapigen=false',
   ])
@@ -669,7 +640,6 @@ if not get_option('sysprof').disabled()
       'sysprofd=none',
       'help=false',
     ],
-    fallback: ['sysprof', 'libsysprof_capture_dep'],
   )
   cdata.set('HAVE_SYSPROF', libsysprof_capture_dep.found())
   libsysprof_dep = dependency('sysprof-4',
@@ -684,7 +654,6 @@ if not get_option('sysprof').disabled()
       'sysprofd=none',
       'help=false',
     ],
-    fallback: ['sysprof', 'libsysprof_dep'],
   )
   profiler_enabled = true
 else
index d09964e401cb907df070b769924e4a66a32e568c..fb8aa712b3dd4993c5abaa9d21c13a4d8c2d1089 100644 (file)
@@ -1,6 +1,10 @@
 [wrap-git]
-directory=cairo
-url=https://gitlab.freedesktop.org/cairo/cairo.git
-push-url=ssh://git@gitlab.freedesktop.org:cairo/cairo.git
-revision=master
-depth=1
+directory = cairo
+url = https://gitlab.freedesktop.org/cairo/cairo.git
+push-url = ssh://git@gitlab.freedesktop.org:cairo/cairo.git
+revision = master
+depth = 1
+
+[provide]
+cairo = libcairo_dep
+cairo-gobject = libcairogobject_dep
diff --git a/subprojects/fribidi.wrap b/subprojects/fribidi.wrap
new file mode 100644 (file)
index 0000000..20ba8ed
--- /dev/null
@@ -0,0 +1,9 @@
+[wrap-git]
+directory = fribidi
+url = https://github.com/fribidi/fribidi.git
+push-url = git@github.com:fribidi/fribidi.git
+revision = master
+depth = 1
+
+[provide]
+dependency_names = fribidi
index fd02e95aafc7a03a5a870880d747dcfa2f04b591..d3a2db833f265eaa1c60357125b4a4cdb2d880b9 100644 (file)
@@ -4,3 +4,7 @@ url = https://gitlab.gnome.org/GNOME/gdk-pixbuf.git
 push-url = ssh://git@ssh.gitlab.gnome.org:GNOME/gdk-pixbuf.git
 revision = master
 depth = 1
+
+[provide]
+dependency_names = gdk-pixbuf-2.0
+program_names = gdk-pixbuf-query-loaders, gdk-pixbuf-pixdata, gdk-pixbuf-csource, gdk-pixbuf-thumbnailer
index 08f7d4e52a2549d13597147048019d7db307200f..525a37bbf37e8a23a3f52af36766d2a041abd5e0 100644 (file)
@@ -4,3 +4,7 @@ url = https://gitlab.gnome.org/GNOME/glib.git
 push-url = ssh://git@ssh.gitlab.gnome.org:GNOME/glib.git
 revision = main
 depth = 1
+
+[provide]
+dependency_names = gthread-2.0, gobject-2.0, gmodule-no-export-2.0, gmodule-export-2.0, gmodule-2.0, glib-2.0, gio-2.0, gio-windows-2.0, gio-unix-2.0
+program_names = glib-genmarshal, glib-mkenums, glib-compile-schemas, glib-compile-resources, gio-querymodules, gdbus-codegen
index 902095dbd74057afa67bb5b66a580182f571bb23..e15c661551443e9a646bfc06e57aca54b70336cf 100644 (file)
@@ -1,5 +1,8 @@
 [wrap-git]
-directory=graphene
-url=https://github.com/ebassi/graphene.git
-revision=master
-depth=1
+directory = graphene
+url = https://github.com/ebassi/graphene.git
+revision = master
+depth = 1
+
+[provide]
+dependency_names = graphene-1.0, graphene-gobject-1.0
index a57870b2e0296760427f8041476a601cc7eaf19f..9245bfb525864a507b9ce34b2ec671fec31b4cc1 100644 (file)
@@ -1,6 +1,9 @@
 [wrap-git]
-directory=harfbuzz
-url=https://github.com/harfbuzz/harfbuzz.git
-push-url=git@github.com:harfbuzz/harfbuzz.git
-revision=4.0.0
-depth=1
+directory = harfbuzz
+url = https://github.com/harfbuzz/harfbuzz.git
+push-url = git@github.com:harfbuzz/harfbuzz.git
+revision = 4.0.0
+depth = 1
+
+[provide]
+harfbuzz = libharfbuzz_dep
index baa31bb003d31b23e3f12cc237d4de417e2685fa..919c70345f0e28dfea60f2725284954d30ba5e10 100644 (file)
@@ -1,5 +1,9 @@
 [wrap-git]
-directory=libcloudproviders
-url=https://gitlab.gnome.org/World/libcloudproviders.git
-revision=master
-depth=1
+directory = libcloudproviders
+url = https://gitlab.gnome.org/World/libcloudproviders.git
+push-url = ssh://git@ssh.gitlab.gnome.org:World/libcloudproviders.git
+revision = master
+depth = 1
+
+[provide]
+libcloudproviders = libcloudproviders_dep
index fc5147a22bd7a7978aa818369810c4f28df7190e..245769050a648d4c85956ce5ac66a4d9afbbadb4 100644 (file)
@@ -1,5 +1,8 @@
 [wrap-git]
-directory=libepoxy
-url=https://github.com/anholt/libepoxy.git
-revision=master
-depth=1
+directory = libepoxy
+url = https://github.com/anholt/libepoxy.git
+revision = master
+depth = 1
+
+[provide]
+dependency_names = epoxy
index aebcfbe4cd64dc80ee857c48dedf75ef53689caa..b75c158b8633aa0aee78a656f1f9980e5c187167 100644 (file)
@@ -4,3 +4,10 @@ url = https://gitlab.gnome.org/GNOME/pango.git
 push-url = ssh://git@ssh.gitlab.gnome.org:GNOME/pango.git
 revision = main
 depth = 1
+
+[provide]
+pango = libpango_dep
+pangoft2 = libpangoft2_dep
+pangoxft = libpangoxft_dep
+pangowin32 = libpangowin32_dep
+pangocairo = libpangocairo_dep
index 99aa36ce8708f61724e79e03bcf470debd842223..29dcbdc13025ee43adb527e0d7eea83b962e8181 100644 (file)
@@ -1,5 +1,8 @@
 [wrap-git]
-directory=sysprof
-url=https://gitlab.gnome.org/GNOME/sysprof.git
-revision=master
-depth=1
+directory = sysprof
+url = https://gitlab.gnome.org/GNOME/sysprof.git
+revision = master
+depth = 1
+
+[provide]
+dependency_names = sysprof-4, sysprof-capture-4, sysprof-ui-4
index 5be67bf491f457a2d033e220ea449c9fcada8d78..7dc36737f7df989d4d68c16102e38081d81f92f9 100644 (file)
@@ -1,8 +1,9 @@
 [wrap-git]
-directory=wayland
-url=https://gitlab.freedesktop.org/wayland/wayland.git
-revision=main
-depth=1
+directory = wayland
+url = https://gitlab.freedesktop.org/wayland/wayland.git
+push-url = git@gitlab.freedesktop.org:wayland/wayland
+revision = main
+depth = 1
 
 [provide]
 dependency_names = wayland-client, wayland-egl