diff --git a/gimp-data b/gimp-data index b4a42ca66f..fed918868c 160000 --- a/gimp-data +++ b/gimp-data @@ -1 +1 @@ -Subproject commit b4a42ca66f7423d3315bd85e64b6fc881d98aee2 +Subproject commit fed918868c84c18d97147fb325f19d16f57f1569 diff --git a/libgimp/tests/meson.build b/libgimp/tests/meson.build index 681b98d21a..94a2839f50 100644 --- a/libgimp/tests/meson.build +++ b/libgimp/tests/meson.build @@ -28,7 +28,7 @@ foreach test_name : tests py_test = meson.current_source_dir() / basename + '.py' test(test_name, run_python_test, - args: [ gimp_exe, py_test ], + args: [ gimp_exe.full_path(), py_test ], env: gimp_run_env, suite: ['libgimp', 'python3'], timeout: 60) @@ -55,9 +55,10 @@ foreach test_name : tests '@OUTPUT@' ], build_by_default: true, install: false) + plugin_executables += [meson.current_build_dir() / 'c-tests' / basename / fs.name(c_test_exe.full_path())] test(test_name, run_c_test, - args: [ gimp_exe, meson.current_source_dir() / c_test_name, basename ], + args: [ gimp_exe.full_path(), meson.current_source_dir() / c_test_name, basename ], env: gimp_run_env, suite: ['libgimp', 'C'], timeout: 60) diff --git a/meson.build b/meson.build index 07e0f78064..c1f74b06ff 100644 --- a/meson.build +++ b/meson.build @@ -1831,6 +1831,7 @@ subdir('libgimpwidgets') subdir('libgimp') # Executables, plugins +plugin_executables = [] subdir('extensions') subdir('modules') subdir('plug-ins') @@ -1845,10 +1846,11 @@ gimp_run_env=environment() if meson.can_run_host_binaries() if enable_console_bin - gimp_exe=gimpconsole_exe + gimp_exe_depends = gimpconsole_exe else - gimp_exe=gimpmain_exe + gimp_exe_depends = gimpmain_exe endif + gimp_run_env.set('GIMP_SELF_IN_BUILD', gimp_exe_depends.full_path()) menu_paths=meson.global_build_root() / 'menus:' + meson.global_source_root() / 'menus' gimp_run_env.set('GIMP_TESTING_MENUS_PATH', menu_paths) @@ -1883,26 +1885,42 @@ if meson.can_run_host_binaries() gimp_run_env.prepend('PATH', meson.global_build_root() / 'libgimpthumb') gimp_run_env.prepend('PATH', meson.global_build_root() / 'libgimpwidgets') elif platform_osx - gimp_run_env.prepend('DYLD_LIBRARY_PATH', meson.global_build_root() / 'libgimp') - gimp_run_env.prepend('DYLD_LIBRARY_PATH', meson.global_build_root() / 'libgimpbase') - gimp_run_env.prepend('DYLD_LIBRARY_PATH', meson.global_build_root() / 'libgimpcolor') - gimp_run_env.prepend('DYLD_LIBRARY_PATH', meson.global_build_root() / 'libgimpconfig') - gimp_run_env.prepend('DYLD_LIBRARY_PATH', meson.global_build_root() / 'libgimpmath') - gimp_run_env.prepend('DYLD_LIBRARY_PATH', meson.global_build_root() / 'libgimpmodule') - gimp_run_env.prepend('DYLD_LIBRARY_PATH', meson.global_build_root() / 'libgimpthumb') - gimp_run_env.prepend('DYLD_LIBRARY_PATH', meson.global_build_root() / 'libgimpwidgets') + gimp_exe_depends += [gimp_exe_typelib] + + gimp_run_env.set('GIMP_GLOBAL_BUILD_ROOT', meson.global_build_root()) + + gimp_run_env.set('GIMP_GI_DIR', gi.get_variable('libdir')) + + gimp_run_env.set('GIMP_TEMP_UPDATE_RPATH', gimp_exe_depends.full_path()) + gimp_run_env.prepend('GIMP_TEMP_UPDATE_RPATH', libgimp.full_path()) + gimp_run_env.prepend('GIMP_TEMP_UPDATE_RPATH', libgimpbase.full_path()) + gimp_run_env.prepend('GIMP_TEMP_UPDATE_RPATH', libgimpcolor.full_path()) + gimp_run_env.prepend('GIMP_TEMP_UPDATE_RPATH', libgimpconfig.full_path()) + gimp_run_env.prepend('GIMP_TEMP_UPDATE_RPATH', libgimpmath.full_path()) + gimp_run_env.prepend('GIMP_TEMP_UPDATE_RPATH', libgimpmodule.full_path()) + gimp_run_env.prepend('GIMP_TEMP_UPDATE_RPATH', libgimpthumb.full_path()) + gimp_run_env.prepend('GIMP_TEMP_UPDATE_RPATH', libgimpwidgets.full_path()) + foreach plugin_exe : plugin_executables + gimp_run_env.prepend('GIMP_TEMP_UPDATE_RPATH', plugin_exe) + endforeach + gimp_run_env.prepend('GIMP_TEMP_UPDATE_RPATH', gi.get_variable('libdir') / 'libgirepository-1.0.dylib') endif else # Cross-builds require an existing native GIMP installed, unless we # can run target binaries. - gimp_exe = find_program([gimpconsole_exe_name, gimpmain_exe_name], - native: true, required: false) + native_gimp_exe = find_program([gimpconsole_exe_name, gimpmain_exe_name], + native: true, required: false) - if not gimp_exe.found() + if not native_gimp_exe.found() error('When cross-compiling, the build requires either an exe_wrapper or a native GIMP installed (@0@ or @1@).'.format(gimpconsole_exe_name, gimpmain_exe_name)) endif + + gimp_run_env.set('GIMP_SELF_IN_BUILD', native_gimp_exe.full_path()) + gimp_exe_depends = [] endif +gimp_exe = find_program('tools'/'in-build-gimp.sh') + # Use a temporary config directory in the top build root for 2 reasons: first # because we don't want to pollute any existing user config folder; second # because the default directory may not be writable (we have the case in macOS diff --git a/plug-ins/common/meson.build b/plug-ins/common/meson.build index f6c65af385..c266ef10c4 100644 --- a/plug-ins/common/meson.build +++ b/plug-ins/common/meson.build @@ -1,4 +1,3 @@ - common_plugins_list = [ { 'name': 'align-layers', }, { 'name': 'animation-optimize', }, @@ -220,31 +219,30 @@ foreach plugin : common_plugins_list endif plugin_exe = executable(plugin_name, - plugin_sources, - include_directories: [ rootInclude, ], - link_with : [ - libgimp, - libgimpbase, - libgimpcolor, - libgimpconfig, - libgimpmath, - libgimpui, - libgimpwidgets, - ], - dependencies: [ plugin_deps, math ], - c_args: plugin_cflags, - install: true, - install_dir: gimpplugindir / 'plug-ins' / plugin_name, - ) + plugin_sources, + include_directories: [ rootInclude, ], + link_with : [ + libgimp, + libgimpbase, + libgimpcolor, + libgimpconfig, + libgimpmath, + libgimpui, + libgimpwidgets, + ], + dependencies: [ plugin_deps, math ], + c_args: plugin_cflags, + install: true, + install_dir: gimpplugindir / 'plug-ins' / plugin_name) # Ugly trick to copy executables into subfolders so that we can run GIMP from # the build directory without installing it. custom_target('test-' + plugin_name, - input: [ plugin_exe ], - output: [ plugin_name + '.dummy' ], - command: [ python, meson.project_source_root() / '.gitlab/cp-plug-in-subfolder.py', - plugin_exe, meson.current_build_dir() / 'test-plug-ins' / plugin_name, - '@OUTPUT@' ], - build_by_default: true, - ) + input: [ plugin_exe ], + output: [ plugin_name + '.dummy' ], + command: [ python, meson.project_source_root() / '.gitlab/cp-plug-in-subfolder.py', + plugin_exe, meson.current_build_dir() / 'test-plug-ins' / plugin_name, + '@OUTPUT@' ], + build_by_default: true) + plugin_executables += [meson.current_build_dir() / 'test-plug-ins' / plugin_name / fs.name(plugin_exe.full_path())] endforeach diff --git a/plug-ins/file-bmp/meson.build b/plug-ins/file-bmp/meson.build index 349e998a5c..3b41ba8153 100644 --- a/plug-ins/file-bmp/meson.build +++ b/plug-ins/file-bmp/meson.build @@ -20,9 +20,9 @@ if platform_windows ) endif -executable(plugin_name, - plugin_sources, - dependencies: libgimpui_dep, - install: true, - install_dir: gimpplugindir / 'plug-ins' / plugin_name, -) +plugin_exe = executable(plugin_name, + plugin_sources, + dependencies: libgimpui_dep, + install: true, + install_dir: gimpplugindir / 'plug-ins' / plugin_name) +plugin_executables += [plugin_exe.full_path()] diff --git a/plug-ins/file-dds/meson.build b/plug-ins/file-dds/meson.build index b50e260e09..de7b7df660 100644 --- a/plug-ins/file-dds/meson.build +++ b/plug-ins/file-dds/meson.build @@ -24,13 +24,13 @@ if platform_windows ) endif -executable(plugin_name, - plugin_sources, - dependencies: [ - libgimpui_dep, - math, - openmp, - ], - install: true, - install_dir: gimpplugindir / 'plug-ins' / plugin_name, -) +plugin_exe = executable(plugin_name, + plugin_sources, + dependencies: [ + libgimpui_dep, + math, + openmp, + ], + install: true, + install_dir: gimpplugindir / 'plug-ins' / plugin_name) +plugin_executables += [plugin_exe.full_path()] diff --git a/plug-ins/file-exr/meson.build b/plug-ins/file-exr/meson.build index f650496264..ed68cff0b6 100644 --- a/plug-ins/file-exr/meson.build +++ b/plug-ins/file-exr/meson.build @@ -21,15 +21,15 @@ if platform_windows ) endif -executable(plugin_name, - plugin_sources, - dependencies: [ - libgimpui_dep, - openexr, - lcms, - ], - install: true, - install_dir: gimpplugindir / 'plug-ins' / plugin_name, -) +plugin_exe = executable(plugin_name, + plugin_sources, + dependencies: [ + libgimpui_dep, + openexr, + lcms, + ], + install: true, + install_dir: gimpplugindir / 'plug-ins' / plugin_name) +plugin_executables += [plugin_exe.full_path()] endif diff --git a/plug-ins/file-faxg3/meson.build b/plug-ins/file-faxg3/meson.build index b21d30a905..0fdcf6de0f 100644 --- a/plug-ins/file-faxg3/meson.build +++ b/plug-ins/file-faxg3/meson.build @@ -19,9 +19,9 @@ if platform_windows ) endif -executable(plugin_name, - plugin_sources, - dependencies: libgimpui_dep, - install: true, - install_dir: gimpplugindir / 'plug-ins' / plugin_name, -) +plugin_exe = executable(plugin_name, + plugin_sources, + dependencies: libgimpui_dep, + install: true, + install_dir: gimpplugindir / 'plug-ins' / plugin_name) +plugin_executables += [plugin_exe.full_path()] diff --git a/plug-ins/file-fits/meson.build b/plug-ins/file-fits/meson.build index 74bc006672..2e93259f89 100644 --- a/plug-ins/file-fits/meson.build +++ b/plug-ins/file-fits/meson.build @@ -19,13 +19,13 @@ if cfitsio_dep.found() ) endif - executable(plugin_name, - plugin_sources, - dependencies: [ - libgimpui_dep, - cfitsio_dep, - ], - install: true, - install_dir: gimpplugindir / 'plug-ins' / plugin_name, - ) + plugin_exe = executable(plugin_name, + plugin_sources, + dependencies: [ + libgimpui_dep, + cfitsio_dep, + ], + install: true, + install_dir: gimpplugindir / 'plug-ins' / plugin_name) + plugin_executables += [plugin_exe.full_path()] endif diff --git a/plug-ins/file-fli/meson.build b/plug-ins/file-fli/meson.build index 9ccc8ae1c5..2f138b28a7 100644 --- a/plug-ins/file-fli/meson.build +++ b/plug-ins/file-fli/meson.build @@ -19,9 +19,9 @@ if platform_windows ) endif -executable(plugin_name, - plugin_sources, - dependencies: libgimpui_dep, - install: true, - install_dir: gimpplugindir / 'plug-ins' / plugin_name, -) +plugin_exe = executable(plugin_name, + plugin_sources, + dependencies: libgimpui_dep, + install: true, + install_dir: gimpplugindir / 'plug-ins' / plugin_name) +plugin_executables += [plugin_exe.full_path()] diff --git a/plug-ins/file-icns/meson.build b/plug-ins/file-icns/meson.build index 7c625f3d3f..b39dcf7131 100644 --- a/plug-ins/file-icns/meson.build +++ b/plug-ins/file-icns/meson.build @@ -21,12 +21,12 @@ if platform_windows ) endif -executable(plugin_name, - plugin_sources, - dependencies: [ - libgimpui_dep, - libpng, - ], - install: true, - install_dir: gimpplugindir / 'plug-ins' / plugin_name, -) +plugin_exe = executable(plugin_name, + plugin_sources, + dependencies: [ + libgimpui_dep, + libpng, + ], + install: true, + install_dir: gimpplugindir / 'plug-ins' / plugin_name) +plugin_executables += [plugin_exe.full_path()] diff --git a/plug-ins/file-ico/meson.build b/plug-ins/file-ico/meson.build index fea223e832..1f682057bd 100644 --- a/plug-ins/file-ico/meson.build +++ b/plug-ins/file-ico/meson.build @@ -21,12 +21,12 @@ if platform_windows ) endif -executable(plugin_name, - plugin_sources, - dependencies: [ - libgimpui_dep, - libpng, - ], - install: true, - install_dir: gimpplugindir / 'plug-ins' / plugin_name, -) +plugin_exe = executable(plugin_name, + plugin_sources, + dependencies: [ + libgimpui_dep, + libpng, + ], + install: true, + install_dir: gimpplugindir / 'plug-ins' / plugin_name) +plugin_executables += [plugin_exe.full_path()] diff --git a/plug-ins/file-jpeg/meson.build b/plug-ins/file-jpeg/meson.build index 72bb0567da..b6c67e1b97 100644 --- a/plug-ins/file-jpeg/meson.build +++ b/plug-ins/file-jpeg/meson.build @@ -23,14 +23,14 @@ if platform_windows ) endif -executable(plugin_name, - plugin_sources, - dependencies: [ - libgimpui_dep, - libjpeg, - lcms, - gexiv2, - ], - install: true, - install_dir: gimpplugindir / 'plug-ins' / plugin_name, -) +plugin_exe = executable(plugin_name, + plugin_sources, + dependencies: [ + libgimpui_dep, + libjpeg, + lcms, + gexiv2, + ], + install: true, + install_dir: gimpplugindir / 'plug-ins' / plugin_name) +plugin_executables += [plugin_exe.full_path()] diff --git a/plug-ins/file-psd/meson.build b/plug-ins/file-psd/meson.build index 6b0511f2f8..d9cf84ff84 100644 --- a/plug-ins/file-psd/meson.build +++ b/plug-ins/file-psd/meson.build @@ -24,15 +24,15 @@ if platform_windows ) endif -executable(plugin_name, - plugin_sources, - c_args: '-DG_LOG_DOMAIN="file-psd"', - dependencies: [ - libgimpui_dep, - libjpeg, - math, - zlib, - ], - install: true, - install_dir: gimpplugindir / 'plug-ins' / plugin_name, -) +plugin_exe = executable(plugin_name, + plugin_sources, + c_args: '-DG_LOG_DOMAIN="file-psd"', + dependencies: [ + libgimpui_dep, + libjpeg, + math, + zlib, + ], + install: true, + install_dir: gimpplugindir / 'plug-ins' / plugin_name) +plugin_executables += [plugin_exe.full_path()] diff --git a/plug-ins/file-raw/meson.build b/plug-ins/file-raw/meson.build index ce3667f4de..1aaf3fd05f 100644 --- a/plug-ins/file-raw/meson.build +++ b/plug-ins/file-raw/meson.build @@ -32,12 +32,12 @@ foreach plugin_name : file_raw_exes endif - executable(plugin_name, - plugin_sources, - dependencies: libgimpui_dep, - install: true, - install_dir: gimpplugindir / 'plug-ins' / plugin_name, - ) + plugin_exe = executable(plugin_name, + plugin_sources, + dependencies: libgimpui_dep, + install: true, + install_dir: gimpplugindir / 'plug-ins' / plugin_name) + plugin_executables += [plugin_exe.full_path()] endforeach install_data([ diff --git a/plug-ins/file-sgi/meson.build b/plug-ins/file-sgi/meson.build index 762ddad7b9..74a525d3da 100644 --- a/plug-ins/file-sgi/meson.build +++ b/plug-ins/file-sgi/meson.build @@ -19,9 +19,9 @@ if platform_windows ) endif -executable(plugin_name, - plugin_sources, - dependencies: libgimpui_dep, - install: true, - install_dir: gimpplugindir / 'plug-ins' / plugin_name, -) +plugin_exe = executable(plugin_name, + plugin_sources, + dependencies: libgimpui_dep, + install: true, + install_dir: gimpplugindir / 'plug-ins' / plugin_name) +plugin_executables += [plugin_exe.full_path()] diff --git a/plug-ins/file-tiff/meson.build b/plug-ins/file-tiff/meson.build index a35d5cf8d4..adc11fd61b 100644 --- a/plug-ins/file-tiff/meson.build +++ b/plug-ins/file-tiff/meson.build @@ -21,13 +21,13 @@ if platform_windows ) endif -executable(plugin_name, - plugin_sources, - dependencies: [ - libgimpui_dep, - gexiv2, - libtiff, - ], - install: true, - install_dir: gimpplugindir / 'plug-ins' / plugin_name, -) +plugin_exe = executable(plugin_name, + plugin_sources, + dependencies: [ + libgimpui_dep, + gexiv2, + libtiff, + ], + install: true, + install_dir: gimpplugindir / 'plug-ins' / plugin_name) +plugin_executables += [plugin_exe.full_path()] diff --git a/plug-ins/file-webp/meson.build b/plug-ins/file-webp/meson.build index 8ad12b4e07..5fb81e19f5 100644 --- a/plug-ins/file-webp/meson.build +++ b/plug-ins/file-webp/meson.build @@ -23,15 +23,15 @@ if platform_windows ) endif -executable(plugin_name, - plugin_sources, - dependencies: [ - libgimpui_dep, - gexiv2, - webp_libs, - ], - install: true, - install_dir: gimpplugindir / 'plug-ins' / plugin_name, -) +plugin_exe = executable(plugin_name, + plugin_sources, + dependencies: [ + libgimpui_dep, + gexiv2, + webp_libs, + ], + install: true, + install_dir: gimpplugindir / 'plug-ins' / plugin_name) +plugin_executables += [plugin_exe.full_path()] endif diff --git a/plug-ins/flame/meson.build b/plug-ins/flame/meson.build index 14ef577ee4..77ca5a3de6 100644 --- a/plug-ins/flame/meson.build +++ b/plug-ins/flame/meson.build @@ -21,12 +21,12 @@ if platform_windows ) endif -executable(plugin_name, - plugin_sources, - dependencies: [ - libgimpui_dep, - math, - ], - install: true, - install_dir: gimpplugindir / 'plug-ins' / plugin_name, -) +plugin_exe = executable(plugin_name, + plugin_sources, + dependencies: [ + libgimpui_dep, + math, + ], + install: true, + install_dir: gimpplugindir / 'plug-ins' / plugin_name) +plugin_executables += [plugin_exe.full_path()] diff --git a/plug-ins/fractal-explorer/meson.build b/plug-ins/fractal-explorer/meson.build index fca1b283a1..e5fd3e7539 100644 --- a/plug-ins/fractal-explorer/meson.build +++ b/plug-ins/fractal-explorer/meson.build @@ -21,12 +21,12 @@ if platform_windows ) endif -executable(plugin_name, - plugin_sources, - dependencies: [ - libgimpui_dep, - math, - ], - install: true, - install_dir: gimpplugindir / 'plug-ins' / plugin_name, -) +plugin_exe = executable(plugin_name, + plugin_sources, + dependencies: [ + libgimpui_dep, + math, + ], + install: true, + install_dir: gimpplugindir / 'plug-ins' / plugin_name) +plugin_executables += [plugin_exe.full_path()] diff --git a/plug-ins/gfig/meson.build b/plug-ins/gfig/meson.build index d05740f327..022469d855 100644 --- a/plug-ins/gfig/meson.build +++ b/plug-ins/gfig/meson.build @@ -42,12 +42,12 @@ if platform_windows ) endif -executable(plugin_name, - plugin_sources, - dependencies: [ - libgimpui_dep, - math, - ], - install: true, - install_dir: gimpplugindir / 'plug-ins' / plugin_name, -) +plugin_exe = executable(plugin_name, + plugin_sources, + dependencies: [ + libgimpui_dep, + math, + ], + install: true, + install_dir: gimpplugindir / 'plug-ins' / plugin_name) +plugin_executables += [plugin_exe.full_path()] diff --git a/plug-ins/gimpressionist/meson.build b/plug-ins/gimpressionist/meson.build index 1a5f4d1c9c..33cc603f28 100644 --- a/plug-ins/gimpressionist/meson.build +++ b/plug-ins/gimpressionist/meson.build @@ -39,18 +39,18 @@ if platform_windows ) endif -executable(plugin_name, - plugin_sources, - dependencies: [ - libgimpui_dep, - math, - ], - c_args: [ - '-DDEFAULTPATH="@0@:@1@"'.format( - '~/' / gimpdir / 'gimpressionist', - prefix / gimpdatadir / 'gimpressionist' - ), - ], - install: true, - install_dir: gimpplugindir / 'plug-ins' / plugin_name, -) +plugin_exe = executable(plugin_name, + plugin_sources, + dependencies: [ + libgimpui_dep, + math, + ], + c_args: [ + '-DDEFAULTPATH="@0@:@1@"'.format( + '~/' / gimpdir / 'gimpressionist', + prefix / gimpdatadir / 'gimpressionist' + ), + ], + install: true, + install_dir: gimpplugindir / 'plug-ins' / plugin_name) +plugin_executables += [plugin_exe.full_path()] diff --git a/plug-ins/gradient-flare/meson.build b/plug-ins/gradient-flare/meson.build index 1c218c38d1..7d8423fa41 100644 --- a/plug-ins/gradient-flare/meson.build +++ b/plug-ins/gradient-flare/meson.build @@ -20,12 +20,12 @@ if platform_windows ) endif -executable(plugin_name, - plugin_sources, - dependencies: [ - libgimpui_dep, - math, - ], - install: true, - install_dir: gimpplugindir / 'plug-ins' / plugin_name, -) +plugin_exe = executable(plugin_name, + plugin_sources, + dependencies: [ + libgimpui_dep, + math, + ], + install: true, + install_dir: gimpplugindir / 'plug-ins' / plugin_name) +plugin_executables += [plugin_exe.full_path()] diff --git a/plug-ins/help-browser/meson.build b/plug-ins/help-browser/meson.build index a1879b557f..6143d773eb 100644 --- a/plug-ins/help-browser/meson.build +++ b/plug-ins/help-browser/meson.build @@ -27,18 +27,18 @@ if platform_windows ) endif -executable(plugin_name, - plugin_sources, - dependencies: [ - libgimpui_dep, - gio, - webkit, - ], - link_with: [ - help_plugin_lib, - ], - install: true, - install_dir: gimpplugindir / 'plug-ins' / plugin_name, -) +plugin_exe = executable(plugin_name, + plugin_sources, + dependencies: [ + libgimpui_dep, + gio, + webkit, + ], + link_with: [ + help_plugin_lib, + ], + install: true, + install_dir: gimpplugindir / 'plug-ins' / plugin_name) +plugin_executables += [plugin_exe.full_path()] endif diff --git a/plug-ins/help/meson.build b/plug-ins/help/meson.build index e1625f5956..2a43cdeb6b 100644 --- a/plug-ins/help/meson.build +++ b/plug-ins/help/meson.build @@ -32,16 +32,16 @@ help_plugin_lib = static_library('help_plugin', install: false, ) -executable(plugin_name, - 'help.c', - dependencies: [ - libgimpui_dep, - gio, - gdk_pixbuf, - ], - link_with: [ - help_plugin_lib, - ], - install: true, - install_dir: gimpplugindir / 'plug-ins' / plugin_name, -) +plugin_exe = executable(plugin_name, + 'help.c', + dependencies: [ + libgimpui_dep, + gio, + gdk_pixbuf, + ], + link_with: [ + help_plugin_lib, + ], + install: true, + install_dir: gimpplugindir / 'plug-ins' / plugin_name) +plugin_executables += [plugin_exe.full_path()] diff --git a/plug-ins/ifs-compose/meson.build b/plug-ins/ifs-compose/meson.build index 9ccdc2118c..8f465cd190 100644 --- a/plug-ins/ifs-compose/meson.build +++ b/plug-ins/ifs-compose/meson.build @@ -25,12 +25,12 @@ if platform_windows ) endif -executable(plugin_name, - plugin_sources, - dependencies: [ - libgimpui_dep, - math, - ], - install: true, - install_dir: gimpplugindir / 'plug-ins' / plugin_name, -) +plugin_exe = executable(plugin_name, + plugin_sources, + dependencies: [ + libgimpui_dep, + math, + ], + install: true, + install_dir: gimpplugindir / 'plug-ins' / plugin_name) +plugin_executables += [plugin_exe.full_path()] diff --git a/plug-ins/imagemap/meson.build b/plug-ins/imagemap/meson.build index 8700f8328b..8784499948 100644 --- a/plug-ins/imagemap/meson.build +++ b/plug-ins/imagemap/meson.build @@ -145,12 +145,12 @@ else endforeach endif -executable(plugin_name, - plugin_sources, - dependencies: [ - libgimpui_dep, - math, - ], - install: true, - install_dir: gimpplugindir / 'plug-ins' / plugin_name, -) +plugin_exe = executable(plugin_name, + plugin_sources, + dependencies: [ + libgimpui_dep, + math, + ], + install: true, + install_dir: gimpplugindir / 'plug-ins' / plugin_name) +plugin_executables += [plugin_exe.full_path()] diff --git a/plug-ins/lighting/meson.build b/plug-ins/lighting/meson.build index 1c7cfcb4bd..297b870ade 100644 --- a/plug-ins/lighting/meson.build +++ b/plug-ins/lighting/meson.build @@ -27,12 +27,12 @@ if platform_windows ) endif -executable(plugin_name, - plugin_sources, - dependencies: [ - libgimpui_dep, - math, - ], - install: true, - install_dir: gimpplugindir / 'plug-ins' / plugin_name, -) +plugin_exe = executable(plugin_name, + plugin_sources, + dependencies: [ + libgimpui_dep, + math, + ], + install: true, + install_dir: gimpplugindir / 'plug-ins' / plugin_name) +plugin_executables += [plugin_exe.full_path()] diff --git a/plug-ins/map-object/meson.build b/plug-ins/map-object/meson.build index 104483828d..4127fa8d70 100644 --- a/plug-ins/map-object/meson.build +++ b/plug-ins/map-object/meson.build @@ -27,12 +27,12 @@ if platform_windows endif -executable(plugin_name, - plugin_sources, - dependencies: [ - libgimpui_dep, - math, - ], - install: true, - install_dir: gimpplugindir / 'plug-ins' / plugin_name, -) +plugin_exe = executable(plugin_name, + plugin_sources, + dependencies: [ + libgimpui_dep, + math, + ], + install: true, + install_dir: gimpplugindir / 'plug-ins' / plugin_name) +plugin_executables += [plugin_exe.full_path()] diff --git a/plug-ins/metadata/meson.build b/plug-ins/metadata/meson.build index 4247101282..e69e0ad218 100644 --- a/plug-ins/metadata/meson.build +++ b/plug-ins/metadata/meson.build @@ -27,15 +27,15 @@ if platform_windows ) endif -executable(plugin_name, - plugin_sources, - dependencies: [ - libgimpui_dep, - gexiv2, - ], - install: true, - install_dir: gimpplugindir / 'plug-ins' / plugin_name, -) +plugin_exe = executable(plugin_name, + plugin_sources, + dependencies: [ + libgimpui_dep, + gexiv2, + ], + install: true, + install_dir: gimpplugindir / 'plug-ins' / plugin_name) +plugin_executables += [plugin_exe.full_path()] ############################################################################### @@ -65,21 +65,21 @@ if platform_windows ) endif -executable(plugin_name, - plugin_sources, - include_directories: [ rootInclude, ], - dependencies: [ - gtk3, gegl, gexiv2, - ], - link_with: [ - libgimp, - libgimpbase, - libgimpcolor, - libgimpconfig, - libgimpmath, - libgimpui, - libgimpwidgets, - ], - install: true, - install_dir: gimpplugindir / 'plug-ins' / plugin_name, -) +plugin_exe = executable(plugin_name, + plugin_sources, + include_directories: [ rootInclude, ], + dependencies: [ + gtk3, gegl, gexiv2, + ], + link_with: [ + libgimp, + libgimpbase, + libgimpcolor, + libgimpconfig, + libgimpmath, + libgimpui, + libgimpwidgets, + ], + install: true, + install_dir: gimpplugindir / 'plug-ins' / plugin_name) +plugin_executables += [plugin_exe.full_path()] diff --git a/plug-ins/pagecurl/meson.build b/plug-ins/pagecurl/meson.build index a14e093498..c5f7d80f53 100644 --- a/plug-ins/pagecurl/meson.build +++ b/plug-ins/pagecurl/meson.build @@ -51,12 +51,12 @@ if platform_windows ) endif -executable(plugin_name, - plugin_sources, - dependencies: [ - libgimpui_dep, - math, - ], - install: true, - install_dir: gimpplugindir / 'plug-ins' / plugin_name, -) +plugin_exe = executable(plugin_name, + plugin_sources, + dependencies: [ + libgimpui_dep, + math, + ], + install: true, + install_dir: gimpplugindir / 'plug-ins' / plugin_name) +plugin_executables += [plugin_exe.full_path()] diff --git a/plug-ins/print/meson.build b/plug-ins/print/meson.build index 1f2396e897..f76dcbebb2 100644 --- a/plug-ins/print/meson.build +++ b/plug-ins/print/meson.build @@ -27,11 +27,11 @@ if platform_windows ) endif -executable(plugin_name, - plugin_sources, - dependencies: libgimpui_dep, - install: true, - install_dir: gimpplugindir / 'plug-ins' / plugin_name, -) +plugin_exe = executable(plugin_name, + plugin_sources, + dependencies: libgimpui_dep, + install: true, + install_dir: gimpplugindir / 'plug-ins' / plugin_name) +plugin_executables += [plugin_exe.full_path()] endif diff --git a/plug-ins/screenshot/meson.build b/plug-ins/screenshot/meson.build index ff04f9b602..61fd2bdfbe 100644 --- a/plug-ins/screenshot/meson.build +++ b/plug-ins/screenshot/meson.build @@ -39,11 +39,11 @@ if platform_windows endif screenshot = executable('screenshot', - plugin_sources, - dependencies: [ - libgimpui_dep, - x11, xmu, xext, xfixes, - ], - install: true, - install_dir: gimpplugindir / 'plug-ins' / plugin_name, -) + plugin_sources, + dependencies: [ + libgimpui_dep, + x11, xmu, xext, xfixes, + ], + install: true, + install_dir: gimpplugindir / 'plug-ins' / plugin_name) +plugin_executables += [screenshot.full_path()] diff --git a/plug-ins/script-fu/interpreter/meson.build b/plug-ins/script-fu/interpreter/meson.build index f069a30499..60b1b8b13c 100644 --- a/plug-ins/script-fu/interpreter/meson.build +++ b/plug-ins/script-fu/interpreter/meson.build @@ -27,18 +27,18 @@ if not meson.is_cross_build() # GIMP queries scripts with shebangs, which invokes gimp-script-fu-interpreter-3.0. script_fu_interpreter = executable(executable_name, - plugin_sources, - dependencies: [ - libgimpui_dep, - math, - ], - c_args: [ - '-DG_LOG_DOMAIN="scriptfu"', - ], - include_directories: [ - scriptfuInclude, - ], - link_with : libscriptfu, - install: true, - ) -endif \ No newline at end of file + plugin_sources, + dependencies: [ + libgimpui_dep, + math, + ], + c_args: [ + '-DG_LOG_DOMAIN="scriptfu"', + ], + include_directories: [ + scriptfuInclude, + ], + link_with : libscriptfu, + install: true) + plugin_executables += [plugin_exe.full_path()] +endif diff --git a/plug-ins/script-fu/meson.build b/plug-ins/script-fu/meson.build index 34820e13ef..dbeff5fd18 100644 --- a/plug-ins/script-fu/meson.build +++ b/plug-ins/script-fu/meson.build @@ -59,21 +59,21 @@ if not meson.is_cross_build() # libscriptfu is installed to standard place; no rpath necessary - executable(executable_name, - plugin_sources, - dependencies: [ - libgimpui_dep, - math, - gi, - ], - c_args: [ - '-DG_LOG_DOMAIN="scriptfu"', - ], - include_directories: [ - libscriptfuInclude, - ], - link_with : [libscriptfuconsole, libscriptfu ], - install: true, - install_dir: gimpplugindir / 'plug-ins' / executable_name, - ) -endif \ No newline at end of file + plugin_exe = executable(executable_name, + plugin_sources, + dependencies: [ + libgimpui_dep, + math, + gi, + ], + c_args: [ + '-DG_LOG_DOMAIN="scriptfu"', + ], + include_directories: [ + libscriptfuInclude, + ], + link_with : [libscriptfuconsole, libscriptfu ], + install: true, + install_dir: gimpplugindir / 'plug-ins' / executable_name) + plugin_executables += [plugin_exe.full_path()] +endif diff --git a/plug-ins/script-fu/server/meson.build b/plug-ins/script-fu/server/meson.build index f1e236d8ea..4f6ee9915d 100644 --- a/plug-ins/script-fu/server/meson.build +++ b/plug-ins/script-fu/server/meson.build @@ -29,21 +29,20 @@ if not meson.is_cross_build() # Note the server rolls its own log, no need for a different G_LOG_DOMAIN - executable(executable_name, - plugin_sources, - dependencies: [ - libgimpui_dep, - math, - winsock, - ], - c_args: [ - '-DG_LOG_DOMAIN="scriptfu"', - ], - include_directories: [ - scriptfuInclude, - ], - link_with : libscriptfu, - install: true, - install_dir: gimpplugindir / 'plug-ins' / executable_name, - ) -endif \ No newline at end of file + plugin_exe = executable(executable_name, + plugin_sources, + dependencies: [ + libgimpui_dep, + math, + winsock, + ], + c_args: [ + '-DG_LOG_DOMAIN="scriptfu"', + ], + include_directories: [ + scriptfuInclude, + ], + link_with : libscriptfu, + install: true, + install_dir: gimpplugindir / 'plug-ins' / executable_name) +endif diff --git a/plug-ins/selection-to-path/meson.build b/plug-ins/selection-to-path/meson.build index c58192186d..c53532c4ef 100644 --- a/plug-ins/selection-to-path/meson.build +++ b/plug-ins/selection-to-path/meson.build @@ -31,8 +31,8 @@ plugin_selection_to_path_deps = [ ] selection_to_path = executable(plugin_name, - plugin_sources, - dependencies: plugin_selection_to_path_deps, - install: true, - install_dir: gimpplugindir / 'plug-ins' / plugin_name, -) + plugin_sources, + dependencies: plugin_selection_to_path_deps, + install: true, + install_dir: gimpplugindir / 'plug-ins' / plugin_name) +plugin_executables += [selection_to_path.full_path()] diff --git a/plug-ins/twain/meson.build b/plug-ins/twain/meson.build index ad233e091b..6515cf67c0 100644 --- a/plug-ins/twain/meson.build +++ b/plug-ins/twain/meson.build @@ -24,12 +24,12 @@ plugin_sources += windows.compile_resources( ) twain = executable(plugin_name, - plugin_sources, - dependencies: [ - libgimp_dep, - glib, - gtk3, - ], - install: true, - install_dir: gimpplugindir / 'plug-ins' / plugin_name, -) + plugin_sources, + dependencies: [ + libgimp_dep, + glib, + gtk3, + ], + install: true, + install_dir: gimpplugindir / 'plug-ins' / plugin_name) +plugin_executables += [twain.full_path()] diff --git a/tools/in-build-gimp.sh b/tools/in-build-gimp.sh new file mode 100755 index 0000000000..285241c822 --- /dev/null +++ b/tools/in-build-gimp.sh @@ -0,0 +1,38 @@ +#!/bin/sh + +if [ -n "$GIMP_TEMP_UPDATE_RPATH" ]; then + # Earlier code used to set DYLD_LIBRARY_PATH environment variable instead, but + # it didn't work on contributor's builds because of System Integrity + # Protection (SIP), though it did work in the CI. + export IFS=":" + for bin in $GIMP_TEMP_UPDATE_RPATH; + do + install_name_tool -add_rpath ${GIMP_GLOBAL_BUILD_ROOT}/libgimp $bin + install_name_tool -add_rpath ${GIMP_GLOBAL_BUILD_ROOT}/libgimpbase $bin + install_name_tool -add_rpath ${GIMP_GLOBAL_BUILD_ROOT}/libgimpcolor $bin + install_name_tool -add_rpath ${GIMP_GLOBAL_BUILD_ROOT}/libgimpconfig $bin + install_name_tool -add_rpath ${GIMP_GLOBAL_BUILD_ROOT}/libgimpmath $bin + install_name_tool -add_rpath ${GIMP_GLOBAL_BUILD_ROOT}/libgimpmodule $bin + install_name_tool -add_rpath ${GIMP_GLOBAL_BUILD_ROOT}/libgimpthumb $bin + install_name_tool -add_rpath ${GIMP_GLOBAL_BUILD_ROOT}/libgimpwidgets $bin + done; + unset IFS +fi + +cat /dev/stdin | $GIMP_SELF_IN_BUILD "$@" + +if [ -n "$GIMP_TEMP_UPDATE_RPATH" ]; then + export IFS=":" + for bin in $GIMP_TEMP_UPDATE_RPATH; + do + install_name_tool -delete_rpath ${GIMP_GLOBAL_BUILD_ROOT}/libgimp $bin + install_name_tool -delete_rpath ${GIMP_GLOBAL_BUILD_ROOT}/libgimpbase $bin + install_name_tool -delete_rpath ${GIMP_GLOBAL_BUILD_ROOT}/libgimpcolor $bin + install_name_tool -delete_rpath ${GIMP_GLOBAL_BUILD_ROOT}/libgimpconfig $bin + install_name_tool -delete_rpath ${GIMP_GLOBAL_BUILD_ROOT}/libgimpmath $bin + install_name_tool -delete_rpath ${GIMP_GLOBAL_BUILD_ROOT}/libgimpmodule $bin + install_name_tool -delete_rpath ${GIMP_GLOBAL_BUILD_ROOT}/libgimpthumb $bin + install_name_tool -delete_rpath ${GIMP_GLOBAL_BUILD_ROOT}/libgimpwidgets $bin + done; + unset IFS +fi