From 5edbb073e2df85e0ede8ee6de9cce5b678dcfc62 Mon Sep 17 00:00:00 2001 From: Bruno Lopes Date: Thu, 21 Aug 2025 15:18:02 -0300 Subject: [PATCH] Declare gexiv2 dependency on many targets (due to gimpmetadata.h) Our build files were relying 'sysroot' to find gexiv2.h but this is not possible with Apple Clang om which sysroot points to macOS SDK. So, exotic environments like Homebrew were failing. Let's fix this. (cherry picked from commit f09007507fd4e36a05424f57de664bb0e5ac4739) --- app/actions/meson.build | 2 +- app/config/meson.build | 2 +- app/display/meson.build | 2 +- app/file-data/meson.build | 1 + app/file/meson.build | 2 +- app/gegl/meson.build | 1 + app/gui/meson.build | 2 +- app/menus/meson.build | 2 +- app/operations/layer-modes-legacy/meson.build | 2 +- app/operations/layer-modes/meson.build | 1 + app/operations/meson.build | 2 +- app/paint/meson.build | 2 +- app/pdb/meson.build | 4 +- app/plug-in/meson.build | 2 +- app/propgui/meson.build | 2 +- app/text/meson.build | 2 +- app/tools/meson.build | 2 +- app/vectors/meson.build | 2 +- app/widgets/meson.build | 2 +- app/xcf/meson.build | 2 +- extensions/goat-exercises/meson.build | 2 +- libgimp/meson.build | 2 +- libgimpcolor/meson.build | 2 +- libgimpconfig/meson.build | 2 +- libgimpmodule/meson.build | 2 +- libgimpthumb/meson.build | 2 +- libgimpwidgets/meson.build | 2 +- modules/meson.build | 2 +- plug-ins/common/meson.build | 53 ++++++++----------- plug-ins/help/meson.build | 2 +- tools/meson.build | 4 +- 31 files changed, 54 insertions(+), 60 deletions(-) diff --git a/app/actions/meson.build b/app/actions/meson.build index 1521edefd1..368e3450f6 100644 --- a/app/actions/meson.build +++ b/app/actions/meson.build @@ -101,6 +101,6 @@ libappactions = static_library('appactions', include_directories: [ rootInclude, rootAppInclude, ], c_args: '-DG_LOG_DOMAIN="Gimp-Actions"', dependencies: [ - gegl, gdk_pixbuf, gtk3, + gegl, gdk_pixbuf, gtk3, gexiv2, ], ) diff --git a/app/config/meson.build b/app/config/meson.build index 8a888181da..362cbefedc 100644 --- a/app/config/meson.build +++ b/app/config/meson.build @@ -44,7 +44,7 @@ libappconfig = static_library('appconfig', include_directories: [ rootInclude, rootAppInclude, ], c_args: '-DG_LOG_DOMAIN="Gimp-Config"', dependencies: [ - cairo, gegl, gdk_pixbuf, gio, gio_specific, libmypaint, + cairo, gegl, gdk_pixbuf, gexiv2, gio, gio_specific, libmypaint, ], ) diff --git a/app/display/meson.build b/app/display/meson.build index 63cc40eca8..c8450bfddd 100644 --- a/app/display/meson.build +++ b/app/display/meson.build @@ -122,6 +122,6 @@ libappdisplay = static_library('appdisplay', include_directories: [ rootInclude, rootAppInclude, ], c_args: '-DG_LOG_DOMAIN="Gimp-Display"', dependencies: [ - gegl, gtk3, cairo, + gegl, gtk3, cairo, gexiv2 ], ) diff --git a/app/file-data/meson.build b/app/file-data/meson.build index 4235b58aa7..9489eda9fb 100644 --- a/app/file-data/meson.build +++ b/app/file-data/meson.build @@ -16,6 +16,7 @@ libappfiledata = static_library('appfiledata', cairo, gdk_pixbuf, gegl, + gexiv2, libarchive, ], ) diff --git a/app/file/meson.build b/app/file/meson.build index 5ed43957f2..c572f44cd5 100644 --- a/app/file/meson.build +++ b/app/file/meson.build @@ -11,6 +11,6 @@ libappfile = static_library('appfile', include_directories: [ rootInclude, rootAppInclude, ], c_args: '-DG_LOG_DOMAIN="Gimp-File"', dependencies: [ - gegl, gdk_pixbuf, + gegl, gdk_pixbuf, gexiv2 ], ) diff --git a/app/gegl/meson.build b/app/gegl/meson.build index 9f12dbdfec..dc60951929 100644 --- a/app/gegl/meson.build +++ b/app/gegl/meson.build @@ -56,5 +56,6 @@ libappgegl = static_library('appgegl', cairo, gegl, gdk_pixbuf, + gexiv2 ], ) diff --git a/app/gui/meson.build b/app/gui/meson.build index e4dbc57718..dc87159ad1 100644 --- a/app/gui/meson.build +++ b/app/gui/meson.build @@ -31,7 +31,7 @@ libappgui = static_library('appgui', include_directories: [ rootInclude, rootAppInclude, ], c_args: '-DG_LOG_DOMAIN="Gimp-GUI"', dependencies: [ - cairo, gegl, gdk_pixbuf, gio_specific, gtk3 + cairo, gegl, gdk_pixbuf, gexiv2, gio_specific, gtk3 ], install: false, ) diff --git a/app/menus/meson.build b/app/menus/meson.build index f0d6db9ebb..8f728e4d78 100644 --- a/app/menus/meson.build +++ b/app/menus/meson.build @@ -16,6 +16,6 @@ libappmenus = static_library('appmenus', include_directories: [ rootInclude, rootAppInclude, ], c_args: '-DG_LOG_DOMAIN="Gimp-Menus"', dependencies: [ - gegl, gtk3 + gegl, gtk3, gexiv2 ], ) diff --git a/app/operations/layer-modes-legacy/meson.build b/app/operations/layer-modes-legacy/meson.build index 58a0dd3bb6..8a5722824b 100644 --- a/app/operations/layer-modes-legacy/meson.build +++ b/app/operations/layer-modes-legacy/meson.build @@ -25,6 +25,6 @@ libapplayermodeslegacy = static_library('applayermodeslegacy', include_directories: [ rootInclude, rootAppInclude, ], c_args: '-DG_LOG_DOMAIN="Gimp-Layer-Modes-Legacy"', dependencies: [ - cairo, gegl, gdk_pixbuf, + cairo, gegl, gdk_pixbuf, gexiv2 ], ) diff --git a/app/operations/layer-modes/meson.build b/app/operations/layer-modes/meson.build index 0cf03134d7..7759aab43d 100644 --- a/app/operations/layer-modes/meson.build +++ b/app/operations/layer-modes/meson.build @@ -49,5 +49,6 @@ libapplayermodes = static_library('applayermodes', cairo, gegl, gdk_pixbuf, + gexiv2 ], ) diff --git a/app/operations/meson.build b/app/operations/meson.build index 14f210b989..7b6194d8cd 100644 --- a/app/operations/meson.build +++ b/app/operations/meson.build @@ -66,7 +66,7 @@ libappoperations = static_library('appoperations', include_directories: [ rootInclude, rootAppInclude, ], c_args: '-DG_LOG_DOMAIN="Gimp-Operations"', dependencies: [ - cairo, gegl, gdk_pixbuf, + cairo, gegl, gdk_pixbuf, gexiv2 ], ) diff --git a/app/paint/meson.build b/app/paint/meson.build index fc5328fa86..5b0c5d406e 100644 --- a/app/paint/meson.build +++ b/app/paint/meson.build @@ -63,6 +63,6 @@ libapppaint = static_library('apppaint', include_directories: [ rootInclude, rootAppInclude, ], c_args: '-DG_LOG_DOMAIN="Gimp-Paint"', dependencies: [ - cairo, gegl, gdk_pixbuf, libmypaint, + cairo, gegl, gdk_pixbuf, gexiv2, libmypaint, ], ) diff --git a/app/pdb/meson.build b/app/pdb/meson.build index a02af884e1..cca0e963ec 100644 --- a/app/pdb/meson.build +++ b/app/pdb/meson.build @@ -73,7 +73,7 @@ libapppdb = static_library('apppdb', include_directories: [ rootInclude, rootAppInclude, ], c_args: '-DG_LOG_DOMAIN="Gimp-PDB"', dependencies: [ - cairo, gegl, gdk_pixbuf, + cairo, gegl, gdk_pixbuf, gexiv2 ], ) @@ -83,7 +83,7 @@ libappinternalprocs = static_library('appinternalprocs', include_directories: [ rootInclude, rootAppInclude, ], c_args: '-DG_LOG_DOMAIN="Gimp-PDB"', dependencies: [ - cairo, gegl, gdk_pixbuf, pangocairo, pango, + cairo, gegl, gdk_pixbuf, gexiv2, pangocairo, pango, ], sources: [ pdbgen diff --git a/app/plug-in/meson.build b/app/plug-in/meson.build index 49318b44de..00d1661e57 100644 --- a/app/plug-in/meson.build +++ b/app/plug-in/meson.build @@ -56,6 +56,6 @@ libappplugin = static_library('appplug-in', include_directories: [ rootInclude, rootAppInclude, ], c_args: '-DG_LOG_DOMAIN="Gimp-Plug-In"', dependencies: [ - cairo, gegl, gdk_pixbuf, + cairo, gegl, gdk_pixbuf, gexiv2, ], ) diff --git a/app/propgui/meson.build b/app/propgui/meson.build index 2e9cc30f5d..432e865d70 100644 --- a/app/propgui/meson.build +++ b/app/propgui/meson.build @@ -28,6 +28,6 @@ libapppropgui = static_library('apppropgui', include_directories: [ rootInclude, rootAppInclude, ], c_args: '-DG_LOG_DOMAIN="Gimp-PropGUI"', dependencies: [ - gegl, gtk3, + gegl, gtk3, gexiv2 ], ) diff --git a/app/text/meson.build b/app/text/meson.build index 8b1605657c..82104cb4ce 100644 --- a/app/text/meson.build +++ b/app/text/meson.build @@ -42,6 +42,6 @@ libapptext = static_library('apptext', include_directories: [ rootInclude, rootAppInclude, ], c_args: '-DG_LOG_DOMAIN="Gimp-Text"', dependencies: [ - gegl, gdk_pixbuf, harfbuzz, pangocairo, pangoft2, + gegl, gdk_pixbuf, gexiv2, harfbuzz, pangocairo, pangoft2, ], ) diff --git a/app/tools/meson.build b/app/tools/meson.build index 58366b7485..2340e3a648 100644 --- a/app/tools/meson.build +++ b/app/tools/meson.build @@ -143,6 +143,6 @@ libapptools = static_library('apptools', include_directories: [ rootInclude, rootAppInclude, ], c_args: '-DG_LOG_DOMAIN="Gimp-Tools"', dependencies: [ - gegl, gtk3, + gegl, gtk3, gexiv2, ], ) diff --git a/app/vectors/meson.build b/app/vectors/meson.build index 46cb025d43..b342851f44 100644 --- a/app/vectors/meson.build +++ b/app/vectors/meson.build @@ -19,6 +19,6 @@ libappvectors = static_library('appvectors', include_directories: [ rootInclude, rootAppInclude, ], c_args: '-DG_LOG_DOMAIN="Gimp-Vectors"', dependencies: [ - cairo, gegl, gdk_pixbuf, + cairo, gegl, gdk_pixbuf, gexiv2 ], ) diff --git a/app/widgets/meson.build b/app/widgets/meson.build index 274b7f356a..d4f10287f5 100644 --- a/app/widgets/meson.build +++ b/app/widgets/meson.build @@ -280,6 +280,6 @@ libappwidgets = static_library('appwidgets', include_directories: [ rootInclude, rootAppInclude, ], c_args: '-DG_LOG_DOMAIN="Gimp-Widgets"', dependencies: [ - gegl, gtk3, + gegl, gtk3, gexiv2, ], ) diff --git a/app/xcf/meson.build b/app/xcf/meson.build index 44198e92dc..7b621f2e2a 100644 --- a/app/xcf/meson.build +++ b/app/xcf/meson.build @@ -13,6 +13,6 @@ libappxcf = static_library('appxcf', include_directories: [ rootInclude, rootAppInclude, ], c_args: '-DG_LOG_DOMAIN="Gimp-XCF"', dependencies: [ - cairo, gegl, gdk_pixbuf, zlib + cairo, gegl, gdk_pixbuf, gexiv2, zlib ], ) diff --git a/extensions/goat-exercises/meson.build b/extensions/goat-exercises/meson.build index 35293117ab..3006624eca 100644 --- a/extensions/goat-exercises/meson.build +++ b/extensions/goat-exercises/meson.build @@ -48,7 +48,7 @@ if have_vala and have_gobject_introspection 'goat-exercise-vala.vala', include_directories: [ rootInclude, ], dependencies: [ - libgimp_vapi, libgimpui_vapi, gtk3, gegl, math, + libgimp_vapi, libgimpui_vapi, libgimpui_dep, math, ], c_args: [ '-DGETTEXT_PACKAGE="@0@"'.format('org.gimp.extension.goat-exercises'), diff --git a/libgimp/meson.build b/libgimp/meson.build index c8ce168ecd..d50ccf43e2 100644 --- a/libgimp/meson.build +++ b/libgimp/meson.build @@ -413,6 +413,7 @@ libgimp_dep = declare_dependency( cairo, gdk_pixbuf, gegl, + gexiv2, ], link_with: [ libgimp, @@ -430,7 +431,6 @@ libgimpui = library('gimpui-'+ gimp_api_version, libgimpui_sources, dependencies: [ libgimp_dep, - gexiv2, gtk3, ], sources: [ diff --git a/libgimpcolor/meson.build b/libgimpcolor/meson.build index bbaeef2333..370bef3829 100644 --- a/libgimpcolor/meson.build +++ b/libgimpcolor/meson.build @@ -36,7 +36,7 @@ libgimpcolor = library('gimpcolor-' + gimp_api_version, libgimpcolor_sources, include_directories: rootInclude, dependencies: [ - cairo, gdk_pixbuf, gegl, lcms, math, + cairo, gdk_pixbuf, gegl, gexiv2, lcms, math, ], c_args: [ '-DG_LOG_DOMAIN="LibGimpColor"', '-DGIMP_COLOR_COMPILATION', ], link_with: [ libgimpbase, ], diff --git a/libgimpconfig/meson.build b/libgimpconfig/meson.build index 4199d638c3..c194489fc5 100644 --- a/libgimpconfig/meson.build +++ b/libgimpconfig/meson.build @@ -70,7 +70,7 @@ libgimpconfig = library('gimpconfig-' + gimp_api_version, libgimpconfig_sources, include_directories: rootInclude, dependencies: [ - cairo, gdk_pixbuf, gegl, gio, gio_specific, + cairo, gdk_pixbuf, gegl, gexiv2, gio, gio_specific, ], c_args: [ '-DG_LOG_DOMAIN="LibGimpConfig"', '-DGIMP_CONFIG_COMPILATION', ], link_with: [ diff --git a/libgimpmodule/meson.build b/libgimpmodule/meson.build index babfe16460..27c9222c4a 100644 --- a/libgimpmodule/meson.build +++ b/libgimpmodule/meson.build @@ -19,7 +19,7 @@ libgimpmodule = library('gimpmodule-' + gimp_api_version, libgimpmodule_sources, include_directories: rootInclude, dependencies: [ - gegl, gio, glib, gmodule, + gegl, gexiv2, gio, glib, gmodule, ], c_args: [ '-DG_LOG_DOMAIN="LibGimpModule"', '-DGIMP_MODULE_COMPILATION', ], link_with: [ diff --git a/libgimpthumb/meson.build b/libgimpthumb/meson.build index 7a34efd271..957409be08 100644 --- a/libgimpthumb/meson.build +++ b/libgimpthumb/meson.build @@ -65,7 +65,7 @@ libgimpthumb = library('gimpthumb-'+ gimp_api_version, libgimpthumb_sources, include_directories: rootInclude, dependencies: [ - gegl, glib, gobject, gdk_pixbuf, gio, + gegl, gexiv2, glib, gobject, gdk_pixbuf, gio, ], c_args: [ '-DG_LOG_DOMAIN="LibGimpThumb"', '-DGIMP_THUMB_COMPILATION', ], link_with: [ diff --git a/libgimpwidgets/meson.build b/libgimpwidgets/meson.build index e348bc31e2..7f63462809 100644 --- a/libgimpwidgets/meson.build +++ b/libgimpwidgets/meson.build @@ -207,7 +207,7 @@ libgimpwidgets = library('gimpwidgets-'+ gimp_api_version, libgimpwidgets_sources, include_directories: rootInclude, dependencies: [ - gegl, gtk3, lcms, math, mscms + gegl, gexiv2, gtk3, lcms, math, mscms ], c_args: [ '-DG_LOG_DOMAIN="LibGimpWidgets"', '-DGIMP_WIDGETS_COMPILATION', ], link_with: [ diff --git a/modules/meson.build b/modules/meson.build index 14e2c3b2d8..78a04d843f 100644 --- a/modules/meson.build +++ b/modules/meson.build @@ -1,6 +1,6 @@ modules_deps = [ - gtk3, babl, gegl, math, + gtk3, babl, gegl, gexiv2, math, ] color_selector_libs = [ diff --git a/plug-ins/common/meson.build b/plug-ins/common/meson.build index ea42db2b96..ab220fe9fc 100644 --- a/plug-ins/common/meson.build +++ b/plug-ins/common/meson.build @@ -10,9 +10,7 @@ common_plugins_list = [ { 'name': 'colormap-remap', }, { 'name': 'compose', }, { 'name': 'contrast-retinex', }, - { 'name': 'crop-zealous', - 'deps': [ gtk3, gegl, gdk_pixbuf, cairo, ], - }, + { 'name': 'crop-zealous' }, { 'name': 'curve-bend', }, { 'name': 'decompose', }, { 'name': 'depth-merge', }, @@ -20,40 +18,36 @@ common_plugins_list = [ { 'name': 'destripe', }, { 'name': 'file-cel', }, { 'name': 'file-compressor', - 'deps': [ gegl, gdk_pixbuf, cairo, gio, liblzma, pango, bz2, zlib, ], + 'deps': [ gio, liblzma, pango, bz2, zlib, ], }, { 'name': 'file-csource', }, { 'name': 'file-dicom', }, { 'name': 'file-farbfeld', }, { 'name': 'file-gbr', }, { 'name': 'file-gegl', }, - { 'name': 'file-gif-load', - 'deps': [ gtk3, gegl, gdk_pixbuf, cairo, ], - }, + { 'name': 'file-gif-load', }, { 'name': 'file-gif-export', }, { 'name': 'file-gih', }, - { 'name': 'file-glob', - 'deps': [ gtk3, gegl, gdk_pixbuf, cairo, ], - }, + { 'name': 'file-glob', }, { 'name': 'file-header', }, { 'name': 'file-html-table', }, { 'name': 'file-pat', }, { 'name': 'file-pcx', }, { 'name': 'file-pdf-load', - 'deps': [ gtk3, gegl, gdk_pixbuf, poppler ], + 'deps': [ poppler ], }, { 'name': 'file-pix', }, { 'name': 'file-png', - 'deps': [ gtk3, gegl, libpng, lcms ], + 'deps': [ libpng, lcms ], }, { 'name': 'file-pnm', }, { 'name': 'file-psp', - 'deps': [ gtk3, gegl, zlib, ], + 'deps': [ zlib, ], }, { 'name': 'file-raw-data', }, { 'name': 'file-sunras', }, { 'name': 'file-svg', - 'deps': [ gtk3, gegl, rsvg, ], + 'deps': [ rsvg, ], }, { 'name': 'file-tga', }, { 'name': 'file-wbmp', }, @@ -85,26 +79,26 @@ common_plugins_list = [ if libaa.found() common_plugins_list += { 'name': 'file-aa', - 'deps': [ gtk3, gegl, gdk_pixbuf, libaa, ], + 'deps': [ libaa, ], } endif if have_heif common_plugins_list += { 'name': 'file-heif', - 'deps': [ gtk3, gegl, libheif, gexiv2, lcms, ], + 'deps': [ libheif, lcms, ], } endif if openjpeg.found() common_plugins_list += { 'name': 'file-jp2-load', - 'deps': [ gtk3, gegl, gdk_pixbuf, openjpeg, ], + 'deps': [ openjpeg, ], } endif if libjxl.found() and libjxl_threads.found() common_plugins_list += { 'name': 'file-jpegxl', - 'deps': [ gtk3, gegl, gexiv2, libjxl, libjxl_threads, ], + 'deps': [ libjxl, libjxl_threads, ], } endif @@ -114,57 +108,55 @@ if libmng.found() mng_cflags = [ '-DMNG_USE_DLL' ] endif common_plugins_list += { 'name': 'file-mng', - 'deps': [ gtk3, gegl, libmng, libpng, ], + 'deps': [ libmng, libpng, ], 'cflags': mng_cflags, } endif if cairopdf.found() common_plugins_list += { 'name': 'file-pdf-export', - 'deps': [ gtk3, gegl, gdk_pixbuf, poppler, cairo, cairopdf ], + 'deps': [ poppler, cairopdf ], } endif if ghostscript.found() common_plugins_list += { 'name': 'file-ps', - 'deps': [ gtk3, gegl, gdk_pixbuf, ghostscript, ], + 'deps': [ ghostscript, ], } endif if wmf.found() common_plugins_list += { 'name': 'file-wmf', - 'deps': [ gtk3, gegl, wmf, ], + 'deps': [ wmf, ], } endif if xmc.found() common_plugins_list += { 'name': 'file-xmc', - 'deps': [ gtk3, gegl, xmc, ], + 'deps': [ xmc, ], } endif if libxpm.found() common_plugins_list += { 'name': 'file-xpm', - 'deps': [ gtk3, gegl, libxpm, ], + 'deps': [ libxpm, ], } endif if have_qoi common_plugins_list += { 'name': 'file-qoi', - 'deps': [ gtk3, gegl, ], } endif if libiff.found() and libilbm.found() common_plugins_list += { 'name': 'file-iff', - 'deps': [ gtk3, gegl, libiff, libilbm, ], + 'deps': [ libiff, libilbm, ], } elif have_ilbm common_plugins_list += { 'name': 'file-iff', - 'deps': [ gtk3, gegl, ], } endif @@ -175,7 +167,6 @@ endif if platform_linux common_plugins_list += { 'name': 'file-desktop-link', - 'deps': [ gtk3, gegl, gdk_pixbuf, cairo, ], } endif @@ -185,7 +176,7 @@ endif if get_option('webkit-unmaintained') common_plugins_list += { 'name': 'web-page', - 'deps': [ gtk3, gegl, gdk_pixbuf, webkit, ], + 'deps': [ webkit, ], } endif @@ -193,7 +184,7 @@ plugin_custom_targets = [] foreach plugin : common_plugins_list plugin_name = plugin.get('name') plugin_sources = [ plugin.get('sources', plugin_name + '.c') ] - plugin_deps = plugin.get('deps', [ gtk3, gegl, gdk_pixbuf, ]) + plugin_deps = plugin.get('deps', []) plugin_cflags = plugin.get('cflags', []) if platform_windows @@ -239,7 +230,7 @@ foreach plugin : common_plugins_list libgimpui, libgimpwidgets, ], - dependencies: [ plugin_deps, math ], + dependencies: [ plugin_deps, math, libgimpui_dep ], c_args: plugin_cflags, win_subsystem: 'windows', install: true, diff --git a/plug-ins/help/meson.build b/plug-ins/help/meson.build index e7d689d607..09e3d7fc73 100644 --- a/plug-ins/help/meson.build +++ b/plug-ins/help/meson.build @@ -28,7 +28,7 @@ help_plugin_lib = static_library('help_plugin', plugin_sources, include_directories: [ rootInclude, ], dependencies: [ - gtk3, gegl, cairo, gio, gdk_pixbuf, + libgimpui_dep, gio, ], install: false, ) diff --git a/tools/meson.build b/tools/meson.build index 5fa54495e9..e7b32cd6b0 100644 --- a/tools/meson.build +++ b/tools/meson.build @@ -10,7 +10,7 @@ gimptool = executable('gimptool' + exec_ver, 'gimptool.c', include_directories: rootInclude, dependencies: [ - gegl, gtk3, + gegl, gtk3, gexiv2 ], link_with: [ libgimpbase, @@ -25,7 +25,7 @@ gimp_test_clipboard = executable('gimp-test-clipboard' + exec_ver, 'gimp-test-clipboard.c', include_directories: rootInclude, dependencies: [ - gegl, gtk3, + gegl, gtk3, gexiv2 ], install: true, )