From cc6b0c5750e3cbb1a8b85f626332033934c91956 Mon Sep 17 00:00:00 2001 From: Nirbheek Chauhan Date: Sun, 18 Dec 2022 06:54:44 +0530 Subject: [PATCH 1/8] meson: Always look for both cmake and pkgconfig names The is_msvc_like change is wrong; it used a false correlation between "compiler being used" and "dependency method" by saying that on Windows, when building with MSVC, you will only use CMake to find png, jpeg, tiff. You can use pkgconfig to find these deps on Windows with MSVC -- when the deps have been built with Autotools or Meson (with MSVC). You can also find these deps using CMake on other platforms like macOS or Linux. The solution is simple: just search for both names on all platforms, and just search for the pkgconfig name first. --- meson.build | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/meson.build b/meson.build index cabe74c30d4..a485363358b 100644 --- a/meson.build +++ b/meson.build @@ -410,22 +410,17 @@ if win32_enabled pangowin32_dep = dependency('pangowin32') endif -is_msvc_like = cc.get_argument_syntax() == 'msvc' - pangocairo_dep = dependency('pangocairo', version: pango_req, fallback : ['pango', 'libpangocairo_dep']) 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(is_msvc_like ? 'png' : 'libpng', - fallback: ['libpng', 'libpng_dep'], - required: true) -tiff_dep = dependency(is_msvc_like ? 'tiff' : 'libtiff-4', - fallback: ['libtiff', 'libtiff4_dep'], - required: true) -jpeg_dep = dependency(is_msvc_like ? 'jpeg' : 'libjpeg', - fallback: ['libjpeg-turbo', 'jpeg_dep'], - required: true) +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']) -- GitLab From 6b111a9fda6c049f1a9d26ac939b985f59e5c40e Mon Sep 17 00:00:00 2001 From: Nirbheek Chauhan Date: Sun, 18 Dec 2022 06:58:02 +0530 Subject: [PATCH 2/8] meson: Remove redundant, duplicate, harfbuzz check --- meson.build | 3 --- 1 file changed, 3 deletions(-) diff --git a/meson.build b/meson.build index a485363358b..86999b9d335 100644 --- a/meson.build +++ b/meson.build @@ -424,9 +424,6 @@ jpeg_dep = dependency('libjpeg', 'jpeg', epoxy_dep = dependency('epoxy', version: epoxy_req, fallback: ['libepoxy', 'libepoxy_dep']) -harfbuzz_dep = dependency('harfbuzz', version: '>= 2.1.0', required: false, - fallback: ['harfbuzz', 'libharfbuzz_dep'], - default_options: ['coretext=enabled']) xkbdep = dependency('xkbcommon', version: xkbcommon_req, required: wayland_enabled) graphene_dep = dependency('graphene-gobject-1.0', version: graphene_req, fallback: ['graphene', 'graphene_dep'], -- GitLab From 1a1f92178e5e97af6e0ae2fb20f26496158b4326 Mon Sep 17 00:00:00 2001 From: Nirbheek Chauhan Date: Sun, 18 Dec 2022 06:59:33 +0530 Subject: [PATCH 3/8] meson: Update gitlab.gnome.org SSH server names Also switch the wrap file style to use spaces around `=` which is the canonical style used by wrapdb now. --- subprojects/gdk-pixbuf.wrap | 10 +++++----- subprojects/gi-docgen.wrap | 10 +++++----- subprojects/glib.wrap | 10 +++++----- subprojects/pango.wrap | 10 +++++----- 4 files changed, 20 insertions(+), 20 deletions(-) diff --git a/subprojects/gdk-pixbuf.wrap b/subprojects/gdk-pixbuf.wrap index 123ea163f95..fd02e95aafc 100644 --- a/subprojects/gdk-pixbuf.wrap +++ b/subprojects/gdk-pixbuf.wrap @@ -1,6 +1,6 @@ [wrap-git] -directory=gdk-pixbuf -url=https://gitlab.gnome.org/GNOME/gdk-pixbuf.git -push-url=ssh://git@gitlab.gnome.org:GNOME/gdk-pixbuf.git -revision=master -depth=1 +directory = gdk-pixbuf +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 diff --git a/subprojects/gi-docgen.wrap b/subprojects/gi-docgen.wrap index 98cd9211820..01606cee4a3 100644 --- a/subprojects/gi-docgen.wrap +++ b/subprojects/gi-docgen.wrap @@ -1,6 +1,6 @@ [wrap-git] -directory=gi-docgen -url=https://gitlab.gnome.org/GNOME/gi-docgen.git -push-url=ssh://git@gitlab.gnome.org:GNOME/gi-docgen.git -revision=main -depth=1 +directory = gi-docgen +url = https://gitlab.gnome.org/GNOME/gi-docgen.git +push-url = ssh://git@ssh.gitlab.gnome.org:GNOME/gi-docgen.git +revision = main +depth = 1 diff --git a/subprojects/glib.wrap b/subprojects/glib.wrap index c785910d9f5..08f7d4e52a2 100644 --- a/subprojects/glib.wrap +++ b/subprojects/glib.wrap @@ -1,6 +1,6 @@ [wrap-git] -directory=glib -url=https://gitlab.gnome.org/GNOME/glib.git -push-url=ssh://git@gitlab.gnome.org:GNOME/glib.git -revision=main -depth=1 +directory = glib +url = https://gitlab.gnome.org/GNOME/glib.git +push-url = ssh://git@ssh.gitlab.gnome.org:GNOME/glib.git +revision = main +depth = 1 diff --git a/subprojects/pango.wrap b/subprojects/pango.wrap index 64317f97fe2..aebcfbe4cd6 100644 --- a/subprojects/pango.wrap +++ b/subprojects/pango.wrap @@ -1,6 +1,6 @@ [wrap-git] -directory=pango -url=https://gitlab.gnome.org/GNOME/pango.git -push-url=ssh://git@gitlab.gnome.org:GNOME/pango.git -revision=main -depth=1 +directory = pango +url = https://gitlab.gnome.org/GNOME/pango.git +push-url = ssh://git@ssh.gitlab.gnome.org:GNOME/pango.git +revision = main +depth = 1 -- GitLab From 53c37cfc177d227af5612fff248942b0c0017e0a Mon Sep 17 00:00:00 2001 From: Nirbheek Chauhan Date: Sun, 18 Dec 2022 07:00:44 +0530 Subject: [PATCH 4/8] meson: Stop using fallback: kwarg for deps that don't need it 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. --- meson.build | 67 ++++++++---------------------- subprojects/cairo.wrap | 14 ++++--- subprojects/fribidi.wrap | 9 ++++ subprojects/gdk-pixbuf.wrap | 4 ++ subprojects/glib.wrap | 4 ++ subprojects/graphene.wrap | 11 +++-- subprojects/harfbuzz.wrap | 13 +++--- subprojects/libcloudproviders.wrap | 12 ++++-- subprojects/libepoxy.wrap | 11 +++-- subprojects/pango.wrap | 7 ++++ subprojects/sysprof.wrap | 11 +++-- subprojects/wayland.wrap | 9 ++-- 12 files changed, 93 insertions(+), 79 deletions(-) create mode 100644 subprojects/fribidi.wrap diff --git a/meson.build b/meson.build index 86999b9d335..5a461c0336e 100644 --- a/meson.build +++ b/meson.build @@ -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 diff --git a/subprojects/cairo.wrap b/subprojects/cairo.wrap index d09964e401c..fb8aa712b3d 100644 --- a/subprojects/cairo.wrap +++ b/subprojects/cairo.wrap @@ -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 index 00000000000..20ba8edf1d0 --- /dev/null +++ b/subprojects/fribidi.wrap @@ -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 diff --git a/subprojects/gdk-pixbuf.wrap b/subprojects/gdk-pixbuf.wrap index fd02e95aafc..d3a2db833f2 100644 --- a/subprojects/gdk-pixbuf.wrap +++ b/subprojects/gdk-pixbuf.wrap @@ -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 diff --git a/subprojects/glib.wrap b/subprojects/glib.wrap index 08f7d4e52a2..525a37bbf37 100644 --- a/subprojects/glib.wrap +++ b/subprojects/glib.wrap @@ -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 diff --git a/subprojects/graphene.wrap b/subprojects/graphene.wrap index 902095dbd74..e15c6615514 100644 --- a/subprojects/graphene.wrap +++ b/subprojects/graphene.wrap @@ -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 diff --git a/subprojects/harfbuzz.wrap b/subprojects/harfbuzz.wrap index a57870b2e02..9245bfb5258 100644 --- a/subprojects/harfbuzz.wrap +++ b/subprojects/harfbuzz.wrap @@ -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 diff --git a/subprojects/libcloudproviders.wrap b/subprojects/libcloudproviders.wrap index baa31bb003d..919c70345f0 100644 --- a/subprojects/libcloudproviders.wrap +++ b/subprojects/libcloudproviders.wrap @@ -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 diff --git a/subprojects/libepoxy.wrap b/subprojects/libepoxy.wrap index fc5147a22bd..245769050a6 100644 --- a/subprojects/libepoxy.wrap +++ b/subprojects/libepoxy.wrap @@ -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 diff --git a/subprojects/pango.wrap b/subprojects/pango.wrap index aebcfbe4cd6..b75c158b863 100644 --- a/subprojects/pango.wrap +++ b/subprojects/pango.wrap @@ -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 diff --git a/subprojects/sysprof.wrap b/subprojects/sysprof.wrap index 99aa36ce870..29dcbdc1302 100644 --- a/subprojects/sysprof.wrap +++ b/subprojects/sysprof.wrap @@ -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 diff --git a/subprojects/wayland.wrap b/subprojects/wayland.wrap index 5be67bf491f..7dc36737f7d 100644 --- a/subprojects/wayland.wrap +++ b/subprojects/wayland.wrap @@ -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 -- GitLab From cd77936265e4765a5ffc6e13e0f3afaa68cb058b Mon Sep 17 00:00:00 2001 From: Nirbheek Chauhan Date: Sun, 18 Dec 2022 10:11:54 +0530 Subject: [PATCH 5/8] meson: Fix find_program and subproject usage Dummy dependencies are not required to execute a subproject automatically for providing a program, nor do you need to explicitly call subproject() to do that. A `[provide]` section in the wrap file is enough. --- docs/reference/meson.build | 4 +++- gtk/meson.build | 19 ++++++------------- meson.build | 5 ----- subprojects/gi-docgen.wrap | 3 +++ subprojects/sassc.wrap | 11 +++++++---- 5 files changed, 19 insertions(+), 23 deletions(-) diff --git a/docs/reference/meson.build b/docs/reference/meson.build index df5e3d99090..0d294137d79 100644 --- a/docs/reference/meson.build +++ b/docs/reference/meson.build @@ -1,7 +1,9 @@ toml_conf = configuration_data() toml_conf.set('version', meson.project_version()) -gidocgen = find_program('gi-docgen', required: get_option('gtk_doc')) +gidocgen = find_program('gi-docgen', + required: get_option('gtk_doc') and get_option('introspection').enabled(), + native: true) gidocgen_common_args = [ '--quiet', diff --git a/gtk/meson.build b/gtk/meson.build index 72e283b71de..61185696dd7 100644 --- a/gtk/meson.build +++ b/gtk/meson.build @@ -779,21 +779,14 @@ theme_deps = [] # For git checkouts, but not for tarballs... if not fs.exists('theme/Default/Default-light.css') # ... build the theme files - sassc = find_program('sassc', required: false) - if not sassc.found() - subproject('sassc') - sassc = find_program('sassc', required: true) - endif - - if sassc.found() - sassc_opts = [ '-a', '-M', '-t', 'compact' ] + sassc = find_program('sassc', native: true) + sassc_opts = [ '-a', '-M', '-t', 'compact' ] - subdir('theme/Default') + subdir('theme/Default') - theme_deps += [ - default_theme_deps, - ] - endif + theme_deps += [ + default_theme_deps, + ] endif diff --git a/meson.build b/meson.build index 5a461c0336e..d0d3b432c52 100644 --- a/meson.build +++ b/meson.build @@ -406,11 +406,6 @@ xkbdep = dependency('xkbcommon', version: xkbcommon_req, required: wayla graphene_dep = dependency('graphene-gobject-1.0', version: graphene_req, default_options: ['tests=false']) iso_codes_dep = dependency('iso-codes', required: false) - -gidocgen_dep = dependency('gi-docgen', version: '>= 2021.1', - fallback: ['gi-docgen', 'dummy_dep'], - required: get_option('gtk_doc') and get_option('introspection').enabled(), - native: true) gi_dep = dependency('gobject-introspection-1.0', version: introspection_req, required: get_option('introspection').enabled() and get_option('build-tests')) diff --git a/subprojects/gi-docgen.wrap b/subprojects/gi-docgen.wrap index 01606cee4a3..85c85da16f7 100644 --- a/subprojects/gi-docgen.wrap +++ b/subprojects/gi-docgen.wrap @@ -4,3 +4,6 @@ url = https://gitlab.gnome.org/GNOME/gi-docgen.git push-url = ssh://git@ssh.gitlab.gnome.org:GNOME/gi-docgen.git revision = main depth = 1 + +[provide] +program_names = gi-docgen diff --git a/subprojects/sassc.wrap b/subprojects/sassc.wrap index edd76c61bed..2930f5c1a36 100644 --- a/subprojects/sassc.wrap +++ b/subprojects/sassc.wrap @@ -1,5 +1,8 @@ [wrap-git] -directory=sassc -url=https://github.com/lazka/sassc.git -revision=meson -depth=1 +directory = sassc +url = https://github.com/lazka/sassc.git +revision = meson +depth = 1 + +[provide] +program_names = sassc -- GitLab From 9c6dd9b3b570c8c5e3d21ff6f6b6a0996c3d9dc9 Mon Sep 17 00:00:00 2001 From: Nirbheek Chauhan Date: Sun, 18 Dec 2022 11:19:14 +0530 Subject: [PATCH 6/8] ci: Update meson version used for vs2017 job --- .gitlab-ci/test-msvc.bat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci/test-msvc.bat b/.gitlab-ci/test-msvc.bat index cf8d9b130cb..c985c413fca 100644 --- a/.gitlab-ci/test-msvc.bat +++ b/.gitlab-ci/test-msvc.bat @@ -5,7 +5,7 @@ call "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Auxiliar @echo on :: FIXME: make warnings fatal -pip3 install --upgrade --user meson==0.60.3 || goto :error +pip3 install --upgrade --user meson~=0.64 || goto :error meson -Ddebug=false -Dmedia-gstreamer=disabled _build || goto :error ninja -C _build || goto :error -- GitLab From 7242408d60a2e532f31e5907c7bc4b48fb5745c5 Mon Sep 17 00:00:00 2001 From: Nirbheek Chauhan Date: Sun, 18 Dec 2022 11:07:43 +0530 Subject: [PATCH 7/8] ci: Fix fedora-mingw64 job --- .gitlab-ci.yml | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1f090b47485..e6d5ca05e5f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -141,9 +141,20 @@ fedora-mingw64: - export PATH="$HOME/.local/bin:$PATH" - pip3 install --user meson~=0.64 - meson subprojects download - - mkdir _build && cd _build - - mingw64-meson -Dintrospection=disabled -Dgraphene:introspection=disabled - - ninja + # Test that mingw64-meson still fails. If it has stopped failing, the CI + # will fail and now you should remove the hack that follows this. + - FAILED=false + - mingw64-meson --version || FAILED=true + - test $FAILED = false && echo "mingw64-meson works now, remove the hack" && exit 1 + # HACK: Running mingw64-meson directly fails on the CI with: + # /usr/bin/mingw64-meson: line 92: fg: no job control + # Because rpm is not evaluating %__meson and it gets interpreted as a job + # specifier. So we fix that and run it ourselves. + - rpm --eval "%{mingw64_meson}" > mingw64-meson.sh + - sed -i -e 's/%__meson/meson/' mingw64-meson.sh + - chmod +x mingw64-meson.sh + - ./mingw64-meson.sh -Dintrospection=disabled -Dgraphene:introspection=disabled _build + - ninja -C _build installed-tests: extends: .build-fedora-default -- GitLab From 64c8da1bdd920a282fd437f366e3910eefe8ceaf Mon Sep 17 00:00:00 2001 From: Nirbheek Chauhan Date: Mon, 19 Dec 2022 09:08:28 +0530 Subject: [PATCH 8/8] ci: Always update subprojects to latest revision Otherwise we're not actually updating anything. `meson subprojects download` will skip subprojects that already exist. --- .gitlab-ci.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e6d5ca05e5f..fbe70a21ff1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -88,6 +88,7 @@ fedora-x86_64: - export PATH="$HOME/.local/bin:$PATH" - pip3 install --user meson~=0.64 - meson subprojects download + - meson subprojects update --reset - mkdir _install - meson setup --prefix=${CI_PROJECT_DIR}/_install @@ -116,6 +117,7 @@ release-build: - export PATH="$HOME/.local/bin:$PATH" - pip3 install --user meson~=0.64 - meson subprojects download + - meson subprojects update --reset - meson setup ${COMMON_MESON_FLAGS} ${EXTRA_MESON_FLAGS} ${BACKEND_FLAGS} ${FEATURE_FLAGS} _build - meson compile -C _build - .gitlab-ci/run-tests.sh _build x11 @@ -141,6 +143,7 @@ fedora-mingw64: - export PATH="$HOME/.local/bin:$PATH" - pip3 install --user meson~=0.64 - meson subprojects download + - meson subprojects update --reset # Test that mingw64-meson still fails. If it has stopped failing, the CI # will fail and now you should remove the hack that follows this. - FAILED=false @@ -168,6 +171,7 @@ installed-tests: - export PATH="$HOME/.local/bin:$PATH" - pip3 install --user meson~=0.64 - meson subprojects download + - meson subprojects update --reset - meson setup --prefix="${CI_PROJECT_DIR}/_installed" ${COMMON_MESON_FLAGS} -- GitLab