meson: on macOS temporarily update rpath to find libraries of non-installed GIMP.

The DYLD_LIBRARY_PATH trick was working fine on CI, but not on local builds for
Lukas. Apparently there are security measures disabling the environment
variable. Instead let's temporarily add then remove libgimp libraries folders
from rpath.

See: https://gitlab.gnome.org/Infrastructure/gimp-macos-build/-/merge_requests/292#note_2075291
This commit is contained in:
Jehan 2024-04-08 21:29:19 +02:00
parent 7f76285bc8
commit a78c41d2a3
39 changed files with 442 additions and 388 deletions

@ -1 +1 @@
Subproject commit b4a42ca66f7423d3315bd85e64b6fc881d98aee2 Subproject commit fed918868c84c18d97147fb325f19d16f57f1569

View file

@ -28,7 +28,7 @@ foreach test_name : tests
py_test = meson.current_source_dir() / basename + '.py' py_test = meson.current_source_dir() / basename + '.py'
test(test_name, run_python_test, test(test_name, run_python_test,
args: [ gimp_exe, py_test ], args: [ gimp_exe.full_path(), py_test ],
env: gimp_run_env, env: gimp_run_env,
suite: ['libgimp', 'python3'], suite: ['libgimp', 'python3'],
timeout: 60) timeout: 60)
@ -55,9 +55,10 @@ foreach test_name : tests
'@OUTPUT@' ], '@OUTPUT@' ],
build_by_default: true, build_by_default: true,
install: false) install: false)
plugin_executables += [meson.current_build_dir() / 'c-tests' / basename / fs.name(c_test_exe.full_path())]
test(test_name, run_c_test, 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, env: gimp_run_env,
suite: ['libgimp', 'C'], suite: ['libgimp', 'C'],
timeout: 60) timeout: 60)

View file

@ -1831,6 +1831,7 @@ subdir('libgimpwidgets')
subdir('libgimp') subdir('libgimp')
# Executables, plugins # Executables, plugins
plugin_executables = []
subdir('extensions') subdir('extensions')
subdir('modules') subdir('modules')
subdir('plug-ins') subdir('plug-ins')
@ -1845,10 +1846,11 @@ gimp_run_env=environment()
if meson.can_run_host_binaries() if meson.can_run_host_binaries()
if enable_console_bin if enable_console_bin
gimp_exe=gimpconsole_exe gimp_exe_depends = gimpconsole_exe
else else
gimp_exe=gimpmain_exe gimp_exe_depends = gimpmain_exe
endif 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' menu_paths=meson.global_build_root() / 'menus:' + meson.global_source_root() / 'menus'
gimp_run_env.set('GIMP_TESTING_MENUS_PATH', menu_paths) 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() / 'libgimpthumb')
gimp_run_env.prepend('PATH', meson.global_build_root() / 'libgimpwidgets') gimp_run_env.prepend('PATH', meson.global_build_root() / 'libgimpwidgets')
elif platform_osx elif platform_osx
gimp_run_env.prepend('DYLD_LIBRARY_PATH', meson.global_build_root() / 'libgimp') gimp_exe_depends += [gimp_exe_typelib]
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.set('GIMP_GLOBAL_BUILD_ROOT', meson.global_build_root())
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.set('GIMP_GI_DIR', gi.get_variable('libdir'))
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.set('GIMP_TEMP_UPDATE_RPATH', gimp_exe_depends.full_path())
gimp_run_env.prepend('DYLD_LIBRARY_PATH', meson.global_build_root() / 'libgimpwidgets') 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 endif
else else
# Cross-builds require an existing native GIMP installed, unless we # Cross-builds require an existing native GIMP installed, unless we
# can run target binaries. # can run target binaries.
gimp_exe = find_program([gimpconsole_exe_name, gimpmain_exe_name], native_gimp_exe = find_program([gimpconsole_exe_name, gimpmain_exe_name],
native: true, required: false) 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)) 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 endif
gimp_run_env.set('GIMP_SELF_IN_BUILD', native_gimp_exe.full_path())
gimp_exe_depends = []
endif endif
gimp_exe = find_program('tools'/'in-build-gimp.sh')
# Use a temporary config directory in the top build root for 2 reasons: first # 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 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 # because the default directory may not be writable (we have the case in macOS

View file

@ -1,4 +1,3 @@
common_plugins_list = [ common_plugins_list = [
{ 'name': 'align-layers', }, { 'name': 'align-layers', },
{ 'name': 'animation-optimize', }, { 'name': 'animation-optimize', },
@ -234,8 +233,7 @@ foreach plugin : common_plugins_list
dependencies: [ plugin_deps, math ], dependencies: [ plugin_deps, math ],
c_args: plugin_cflags, c_args: plugin_cflags,
install: true, install: true,
install_dir: gimpplugindir / 'plug-ins' / plugin_name, install_dir: gimpplugindir / 'plug-ins' / plugin_name)
)
# Ugly trick to copy executables into subfolders so that we can run GIMP from # Ugly trick to copy executables into subfolders so that we can run GIMP from
# the build directory without installing it. # the build directory without installing it.
@ -245,6 +243,6 @@ foreach plugin : common_plugins_list
command: [ python, meson.project_source_root() / '.gitlab/cp-plug-in-subfolder.py', command: [ python, meson.project_source_root() / '.gitlab/cp-plug-in-subfolder.py',
plugin_exe, meson.current_build_dir() / 'test-plug-ins' / plugin_name, plugin_exe, meson.current_build_dir() / 'test-plug-ins' / plugin_name,
'@OUTPUT@' ], '@OUTPUT@' ],
build_by_default: true, build_by_default: true)
) plugin_executables += [meson.current_build_dir() / 'test-plug-ins' / plugin_name / fs.name(plugin_exe.full_path())]
endforeach endforeach

View file

@ -20,9 +20,9 @@ if platform_windows
) )
endif endif
executable(plugin_name, plugin_exe = executable(plugin_name,
plugin_sources, plugin_sources,
dependencies: libgimpui_dep, dependencies: libgimpui_dep,
install: true, install: true,
install_dir: gimpplugindir / 'plug-ins' / plugin_name, install_dir: gimpplugindir / 'plug-ins' / plugin_name)
) plugin_executables += [plugin_exe.full_path()]

View file

@ -24,7 +24,7 @@ if platform_windows
) )
endif endif
executable(plugin_name, plugin_exe = executable(plugin_name,
plugin_sources, plugin_sources,
dependencies: [ dependencies: [
libgimpui_dep, libgimpui_dep,
@ -32,5 +32,5 @@ executable(plugin_name,
openmp, openmp,
], ],
install: true, install: true,
install_dir: gimpplugindir / 'plug-ins' / plugin_name, install_dir: gimpplugindir / 'plug-ins' / plugin_name)
) plugin_executables += [plugin_exe.full_path()]

View file

@ -21,7 +21,7 @@ if platform_windows
) )
endif endif
executable(plugin_name, plugin_exe = executable(plugin_name,
plugin_sources, plugin_sources,
dependencies: [ dependencies: [
libgimpui_dep, libgimpui_dep,
@ -29,7 +29,7 @@ executable(plugin_name,
lcms, lcms,
], ],
install: true, install: true,
install_dir: gimpplugindir / 'plug-ins' / plugin_name, install_dir: gimpplugindir / 'plug-ins' / plugin_name)
) plugin_executables += [plugin_exe.full_path()]
endif endif

View file

@ -19,9 +19,9 @@ if platform_windows
) )
endif endif
executable(plugin_name, plugin_exe = executable(plugin_name,
plugin_sources, plugin_sources,
dependencies: libgimpui_dep, dependencies: libgimpui_dep,
install: true, install: true,
install_dir: gimpplugindir / 'plug-ins' / plugin_name, install_dir: gimpplugindir / 'plug-ins' / plugin_name)
) plugin_executables += [plugin_exe.full_path()]

View file

@ -19,13 +19,13 @@ if cfitsio_dep.found()
) )
endif endif
executable(plugin_name, plugin_exe = executable(plugin_name,
plugin_sources, plugin_sources,
dependencies: [ dependencies: [
libgimpui_dep, libgimpui_dep,
cfitsio_dep, cfitsio_dep,
], ],
install: true, install: true,
install_dir: gimpplugindir / 'plug-ins' / plugin_name, install_dir: gimpplugindir / 'plug-ins' / plugin_name)
) plugin_executables += [plugin_exe.full_path()]
endif endif

View file

@ -19,9 +19,9 @@ if platform_windows
) )
endif endif
executable(plugin_name, plugin_exe = executable(plugin_name,
plugin_sources, plugin_sources,
dependencies: libgimpui_dep, dependencies: libgimpui_dep,
install: true, install: true,
install_dir: gimpplugindir / 'plug-ins' / plugin_name, install_dir: gimpplugindir / 'plug-ins' / plugin_name)
) plugin_executables += [plugin_exe.full_path()]

View file

@ -21,12 +21,12 @@ if platform_windows
) )
endif endif
executable(plugin_name, plugin_exe = executable(plugin_name,
plugin_sources, plugin_sources,
dependencies: [ dependencies: [
libgimpui_dep, libgimpui_dep,
libpng, libpng,
], ],
install: true, install: true,
install_dir: gimpplugindir / 'plug-ins' / plugin_name, install_dir: gimpplugindir / 'plug-ins' / plugin_name)
) plugin_executables += [plugin_exe.full_path()]

View file

@ -21,12 +21,12 @@ if platform_windows
) )
endif endif
executable(plugin_name, plugin_exe = executable(plugin_name,
plugin_sources, plugin_sources,
dependencies: [ dependencies: [
libgimpui_dep, libgimpui_dep,
libpng, libpng,
], ],
install: true, install: true,
install_dir: gimpplugindir / 'plug-ins' / plugin_name, install_dir: gimpplugindir / 'plug-ins' / plugin_name)
) plugin_executables += [plugin_exe.full_path()]

View file

@ -23,7 +23,7 @@ if platform_windows
) )
endif endif
executable(plugin_name, plugin_exe = executable(plugin_name,
plugin_sources, plugin_sources,
dependencies: [ dependencies: [
libgimpui_dep, libgimpui_dep,
@ -32,5 +32,5 @@ executable(plugin_name,
gexiv2, gexiv2,
], ],
install: true, install: true,
install_dir: gimpplugindir / 'plug-ins' / plugin_name, install_dir: gimpplugindir / 'plug-ins' / plugin_name)
) plugin_executables += [plugin_exe.full_path()]

View file

@ -24,7 +24,7 @@ if platform_windows
) )
endif endif
executable(plugin_name, plugin_exe = executable(plugin_name,
plugin_sources, plugin_sources,
c_args: '-DG_LOG_DOMAIN="file-psd"', c_args: '-DG_LOG_DOMAIN="file-psd"',
dependencies: [ dependencies: [
@ -34,5 +34,5 @@ executable(plugin_name,
zlib, zlib,
], ],
install: true, install: true,
install_dir: gimpplugindir / 'plug-ins' / plugin_name, install_dir: gimpplugindir / 'plug-ins' / plugin_name)
) plugin_executables += [plugin_exe.full_path()]

View file

@ -32,12 +32,12 @@ foreach plugin_name : file_raw_exes
endif endif
executable(plugin_name, plugin_exe = executable(plugin_name,
plugin_sources, plugin_sources,
dependencies: libgimpui_dep, dependencies: libgimpui_dep,
install: true, install: true,
install_dir: gimpplugindir / 'plug-ins' / plugin_name, install_dir: gimpplugindir / 'plug-ins' / plugin_name)
) plugin_executables += [plugin_exe.full_path()]
endforeach endforeach
install_data([ install_data([

View file

@ -19,9 +19,9 @@ if platform_windows
) )
endif endif
executable(plugin_name, plugin_exe = executable(plugin_name,
plugin_sources, plugin_sources,
dependencies: libgimpui_dep, dependencies: libgimpui_dep,
install: true, install: true,
install_dir: gimpplugindir / 'plug-ins' / plugin_name, install_dir: gimpplugindir / 'plug-ins' / plugin_name)
) plugin_executables += [plugin_exe.full_path()]

View file

@ -21,7 +21,7 @@ if platform_windows
) )
endif endif
executable(plugin_name, plugin_exe = executable(plugin_name,
plugin_sources, plugin_sources,
dependencies: [ dependencies: [
libgimpui_dep, libgimpui_dep,
@ -29,5 +29,5 @@ executable(plugin_name,
libtiff, libtiff,
], ],
install: true, install: true,
install_dir: gimpplugindir / 'plug-ins' / plugin_name, install_dir: gimpplugindir / 'plug-ins' / plugin_name)
) plugin_executables += [plugin_exe.full_path()]

View file

@ -23,7 +23,7 @@ if platform_windows
) )
endif endif
executable(plugin_name, plugin_exe = executable(plugin_name,
plugin_sources, plugin_sources,
dependencies: [ dependencies: [
libgimpui_dep, libgimpui_dep,
@ -31,7 +31,7 @@ executable(plugin_name,
webp_libs, webp_libs,
], ],
install: true, install: true,
install_dir: gimpplugindir / 'plug-ins' / plugin_name, install_dir: gimpplugindir / 'plug-ins' / plugin_name)
) plugin_executables += [plugin_exe.full_path()]
endif endif

View file

@ -21,12 +21,12 @@ if platform_windows
) )
endif endif
executable(plugin_name, plugin_exe = executable(plugin_name,
plugin_sources, plugin_sources,
dependencies: [ dependencies: [
libgimpui_dep, libgimpui_dep,
math, math,
], ],
install: true, install: true,
install_dir: gimpplugindir / 'plug-ins' / plugin_name, install_dir: gimpplugindir / 'plug-ins' / plugin_name)
) plugin_executables += [plugin_exe.full_path()]

View file

@ -21,12 +21,12 @@ if platform_windows
) )
endif endif
executable(plugin_name, plugin_exe = executable(plugin_name,
plugin_sources, plugin_sources,
dependencies: [ dependencies: [
libgimpui_dep, libgimpui_dep,
math, math,
], ],
install: true, install: true,
install_dir: gimpplugindir / 'plug-ins' / plugin_name, install_dir: gimpplugindir / 'plug-ins' / plugin_name)
) plugin_executables += [plugin_exe.full_path()]

View file

@ -42,12 +42,12 @@ if platform_windows
) )
endif endif
executable(plugin_name, plugin_exe = executable(plugin_name,
plugin_sources, plugin_sources,
dependencies: [ dependencies: [
libgimpui_dep, libgimpui_dep,
math, math,
], ],
install: true, install: true,
install_dir: gimpplugindir / 'plug-ins' / plugin_name, install_dir: gimpplugindir / 'plug-ins' / plugin_name)
) plugin_executables += [plugin_exe.full_path()]

View file

@ -39,7 +39,7 @@ if platform_windows
) )
endif endif
executable(plugin_name, plugin_exe = executable(plugin_name,
plugin_sources, plugin_sources,
dependencies: [ dependencies: [
libgimpui_dep, libgimpui_dep,
@ -52,5 +52,5 @@ executable(plugin_name,
), ),
], ],
install: true, install: true,
install_dir: gimpplugindir / 'plug-ins' / plugin_name, install_dir: gimpplugindir / 'plug-ins' / plugin_name)
) plugin_executables += [plugin_exe.full_path()]

View file

@ -20,12 +20,12 @@ if platform_windows
) )
endif endif
executable(plugin_name, plugin_exe = executable(plugin_name,
plugin_sources, plugin_sources,
dependencies: [ dependencies: [
libgimpui_dep, libgimpui_dep,
math, math,
], ],
install: true, install: true,
install_dir: gimpplugindir / 'plug-ins' / plugin_name, install_dir: gimpplugindir / 'plug-ins' / plugin_name)
) plugin_executables += [plugin_exe.full_path()]

View file

@ -27,7 +27,7 @@ if platform_windows
) )
endif endif
executable(plugin_name, plugin_exe = executable(plugin_name,
plugin_sources, plugin_sources,
dependencies: [ dependencies: [
libgimpui_dep, libgimpui_dep,
@ -38,7 +38,7 @@ executable(plugin_name,
help_plugin_lib, help_plugin_lib,
], ],
install: true, install: true,
install_dir: gimpplugindir / 'plug-ins' / plugin_name, install_dir: gimpplugindir / 'plug-ins' / plugin_name)
) plugin_executables += [plugin_exe.full_path()]
endif endif

View file

@ -32,7 +32,7 @@ help_plugin_lib = static_library('help_plugin',
install: false, install: false,
) )
executable(plugin_name, plugin_exe = executable(plugin_name,
'help.c', 'help.c',
dependencies: [ dependencies: [
libgimpui_dep, libgimpui_dep,
@ -43,5 +43,5 @@ executable(plugin_name,
help_plugin_lib, help_plugin_lib,
], ],
install: true, install: true,
install_dir: gimpplugindir / 'plug-ins' / plugin_name, install_dir: gimpplugindir / 'plug-ins' / plugin_name)
) plugin_executables += [plugin_exe.full_path()]

View file

@ -25,12 +25,12 @@ if platform_windows
) )
endif endif
executable(plugin_name, plugin_exe = executable(plugin_name,
plugin_sources, plugin_sources,
dependencies: [ dependencies: [
libgimpui_dep, libgimpui_dep,
math, math,
], ],
install: true, install: true,
install_dir: gimpplugindir / 'plug-ins' / plugin_name, install_dir: gimpplugindir / 'plug-ins' / plugin_name)
) plugin_executables += [plugin_exe.full_path()]

View file

@ -145,12 +145,12 @@ else
endforeach endforeach
endif endif
executable(plugin_name, plugin_exe = executable(plugin_name,
plugin_sources, plugin_sources,
dependencies: [ dependencies: [
libgimpui_dep, libgimpui_dep,
math, math,
], ],
install: true, install: true,
install_dir: gimpplugindir / 'plug-ins' / plugin_name, install_dir: gimpplugindir / 'plug-ins' / plugin_name)
) plugin_executables += [plugin_exe.full_path()]

View file

@ -27,12 +27,12 @@ if platform_windows
) )
endif endif
executable(plugin_name, plugin_exe = executable(plugin_name,
plugin_sources, plugin_sources,
dependencies: [ dependencies: [
libgimpui_dep, libgimpui_dep,
math, math,
], ],
install: true, install: true,
install_dir: gimpplugindir / 'plug-ins' / plugin_name, install_dir: gimpplugindir / 'plug-ins' / plugin_name)
) plugin_executables += [plugin_exe.full_path()]

View file

@ -27,12 +27,12 @@ if platform_windows
endif endif
executable(plugin_name, plugin_exe = executable(plugin_name,
plugin_sources, plugin_sources,
dependencies: [ dependencies: [
libgimpui_dep, libgimpui_dep,
math, math,
], ],
install: true, install: true,
install_dir: gimpplugindir / 'plug-ins' / plugin_name, install_dir: gimpplugindir / 'plug-ins' / plugin_name)
) plugin_executables += [plugin_exe.full_path()]

View file

@ -27,15 +27,15 @@ if platform_windows
) )
endif endif
executable(plugin_name, plugin_exe = executable(plugin_name,
plugin_sources, plugin_sources,
dependencies: [ dependencies: [
libgimpui_dep, libgimpui_dep,
gexiv2, gexiv2,
], ],
install: true, install: true,
install_dir: gimpplugindir / 'plug-ins' / plugin_name, install_dir: gimpplugindir / 'plug-ins' / plugin_name)
) plugin_executables += [plugin_exe.full_path()]
############################################################################### ###############################################################################
@ -65,7 +65,7 @@ if platform_windows
) )
endif endif
executable(plugin_name, plugin_exe = executable(plugin_name,
plugin_sources, plugin_sources,
include_directories: [ rootInclude, ], include_directories: [ rootInclude, ],
dependencies: [ dependencies: [
@ -81,5 +81,5 @@ executable(plugin_name,
libgimpwidgets, libgimpwidgets,
], ],
install: true, install: true,
install_dir: gimpplugindir / 'plug-ins' / plugin_name, install_dir: gimpplugindir / 'plug-ins' / plugin_name)
) plugin_executables += [plugin_exe.full_path()]

View file

@ -51,12 +51,12 @@ if platform_windows
) )
endif endif
executable(plugin_name, plugin_exe = executable(plugin_name,
plugin_sources, plugin_sources,
dependencies: [ dependencies: [
libgimpui_dep, libgimpui_dep,
math, math,
], ],
install: true, install: true,
install_dir: gimpplugindir / 'plug-ins' / plugin_name, install_dir: gimpplugindir / 'plug-ins' / plugin_name)
) plugin_executables += [plugin_exe.full_path()]

View file

@ -27,11 +27,11 @@ if platform_windows
) )
endif endif
executable(plugin_name, plugin_exe = executable(plugin_name,
plugin_sources, plugin_sources,
dependencies: libgimpui_dep, dependencies: libgimpui_dep,
install: true, install: true,
install_dir: gimpplugindir / 'plug-ins' / plugin_name, install_dir: gimpplugindir / 'plug-ins' / plugin_name)
) plugin_executables += [plugin_exe.full_path()]
endif endif

View file

@ -45,5 +45,5 @@ screenshot = executable('screenshot',
x11, xmu, xext, xfixes, x11, xmu, xext, xfixes,
], ],
install: true, install: true,
install_dir: gimpplugindir / 'plug-ins' / plugin_name, install_dir: gimpplugindir / 'plug-ins' / plugin_name)
) plugin_executables += [screenshot.full_path()]

View file

@ -39,6 +39,6 @@ if not meson.is_cross_build()
scriptfuInclude, scriptfuInclude,
], ],
link_with : libscriptfu, link_with : libscriptfu,
install: true, install: true)
) plugin_executables += [plugin_exe.full_path()]
endif endif

View file

@ -59,7 +59,7 @@ if not meson.is_cross_build()
# libscriptfu is installed to standard place; no rpath necessary # libscriptfu is installed to standard place; no rpath necessary
executable(executable_name, plugin_exe = executable(executable_name,
plugin_sources, plugin_sources,
dependencies: [ dependencies: [
libgimpui_dep, libgimpui_dep,
@ -74,6 +74,6 @@ if not meson.is_cross_build()
], ],
link_with : [libscriptfuconsole, libscriptfu ], link_with : [libscriptfuconsole, libscriptfu ],
install: true, install: true,
install_dir: gimpplugindir / 'plug-ins' / executable_name, install_dir: gimpplugindir / 'plug-ins' / executable_name)
) plugin_executables += [plugin_exe.full_path()]
endif endif

View file

@ -29,7 +29,7 @@ if not meson.is_cross_build()
# Note the server rolls its own log, no need for a different G_LOG_DOMAIN # Note the server rolls its own log, no need for a different G_LOG_DOMAIN
executable(executable_name, plugin_exe = executable(executable_name,
plugin_sources, plugin_sources,
dependencies: [ dependencies: [
libgimpui_dep, libgimpui_dep,
@ -44,6 +44,5 @@ if not meson.is_cross_build()
], ],
link_with : libscriptfu, link_with : libscriptfu,
install: true, install: true,
install_dir: gimpplugindir / 'plug-ins' / executable_name, install_dir: gimpplugindir / 'plug-ins' / executable_name)
)
endif endif

View file

@ -34,5 +34,5 @@ selection_to_path = executable(plugin_name,
plugin_sources, plugin_sources,
dependencies: plugin_selection_to_path_deps, dependencies: plugin_selection_to_path_deps,
install: true, install: true,
install_dir: gimpplugindir / 'plug-ins' / plugin_name, install_dir: gimpplugindir / 'plug-ins' / plugin_name)
) plugin_executables += [selection_to_path.full_path()]

View file

@ -31,5 +31,5 @@ twain = executable(plugin_name,
gtk3, gtk3,
], ],
install: true, install: true,
install_dir: gimpplugindir / 'plug-ins' / plugin_name, install_dir: gimpplugindir / 'plug-ins' / plugin_name)
) plugin_executables += [twain.full_path()]

38
tools/in-build-gimp.sh Executable file
View file

@ -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