From f09007507fd4e36a05424f57de664bb0e5ac4739 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. --- 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/path/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/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 | 51 ++++++++----------- plug-ins/help/meson.build | 2 +- tools/meson.build | 4 +- 31 files changed, 54 insertions(+), 58 deletions(-) diff --git a/app/actions/meson.build b/app/actions/meson.build index 263c1d5c3a..50a83d8bb0 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 76c78db38f..eeb93a5718 100644 --- a/app/operations/layer-modes/meson.build +++ b/app/operations/layer-modes/meson.build @@ -50,5 +50,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/path/meson.build b/app/path/meson.build index 7020049ff6..00a75e1ec6 100644 --- a/app/path/meson.build +++ b/app/path/meson.build @@ -22,6 +22,6 @@ libapppath = static_library('apppath', include_directories: [ rootInclude, rootAppInclude, ], c_args: '-DG_LOG_DOMAIN="Gimp-Path"', dependencies: [ - cairo, gegl, gdk_pixbuf, + cairo, gegl, gdk_pixbuf, gexiv2 ], ) diff --git a/app/pdb/meson.build b/app/pdb/meson.build index e72bdb6d24..3317b118f3 100644 --- a/app/pdb/meson.build +++ b/app/pdb/meson.build @@ -75,7 +75,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 ], ) @@ -85,7 +85,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 f40809f073..91e976c6fd 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/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 515b8c1cc1..e6a5d36a40 100644 --- a/libgimp/meson.build +++ b/libgimp/meson.build @@ -421,6 +421,7 @@ libgimp_dep = declare_dependency( cairo, gdk_pixbuf, gegl, + gexiv2, ], link_with: [ libgimp, @@ -438,7 +439,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 e286a08e5b..4493c344c7 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,7 +18,7 @@ common_plugins_list = [ { 'name': 'destripe', }, { 'name': 'file-cel', }, { 'name': 'file-compressor', - 'deps': [ gegl, gdk_pixbuf, cairo, gio, libarchive, liblzma, pango, bz2, zlib, ], + 'deps': [ gio, libarchive, liblzma, pango, bz2, zlib, ], }, { 'name': 'file-csource', }, { 'name': 'file-dicom', }, @@ -28,34 +26,32 @@ common_plugins_list = [ { 'name': 'file-gbr', }, { 'name': 'file-gegl', }, { 'name': 'file-gif-load', - 'deps': [ gtk3, gegl, gdk_pixbuf, cairo, zlib, ], + 'deps': [ zlib, ], }, { '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-paa', }, { '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-seattle-filmworks', }, { 'name': 'file-sunras', }, { 'name': 'file-svg', - 'deps': [ gtk3, gegl, rsvg, ], + 'deps': [ rsvg, ], }, { 'name': 'file-tga', }, { 'name': 'file-tim', }, @@ -88,26 +84,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', - '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 @@ -117,57 +113,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 @@ -178,7 +172,6 @@ endif if platform_linux common_plugins_list += { 'name': 'file-desktop-link', - 'deps': [ gtk3, gegl, gdk_pixbuf, cairo, ], } endif if not platform_windows @@ -187,7 +180,7 @@ endif if get_option('webkit-unmaintained') common_plugins_list += { 'name': 'web-page', - 'deps': [ gtk3, gegl, gdk_pixbuf, webkit, ], + 'deps': [ webkit, ], } endif @@ -195,7 +188,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 @@ -241,7 +234,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, )