diff --git a/meson.build b/meson.build index 8998afae80e..f2b32e7fbe5 100644 --- a/meson.build +++ b/meson.build @@ -2099,6 +2099,8 @@ else prog_flex_cpp = prog_flex endif +prog_ln = find_program('ln', required : false) + _libunwind = get_option('libunwind') \ .require(not with_platform_android, error_message : 'Android requires the use of the backtrace library, not libunwind') if host_machine.system() == 'darwin' diff --git a/src/gallium/targets/dri/meson.build b/src/gallium/targets/dri/meson.build index 412239f7b43..c8ac8f7d510 100644 --- a/src/gallium/targets/dri/meson.build +++ b/src/gallium/targets/dri/meson.build @@ -75,7 +75,17 @@ if with_gallium_va [with_gallium_virgl, 'virtio_gpu'], [with_gallium_d3d12_video, 'd3d12']] if d[0] - va_drivers += '@0@_drv_video.so'.format(d[1]) + name = '@0@_drv_video.so'.format(d[1]) + va_drivers += name + + if prog_ln.found() + custom_target( + name, + output : name, + command : [prog_ln, '-sf', libgallium_dri.full_path(), '@OUTPUT@'], + build_by_default : true, + ) + endif endif endforeach diff --git a/src/gallium/targets/dril/meson.build b/src/gallium/targets/dril/meson.build index 62a816f44a6..0cd31d2fd10 100644 --- a/src/gallium/targets/dril/meson.build +++ b/src/gallium/targets/dril/meson.build @@ -131,7 +131,6 @@ foreach d : [[with_gallium_kmsro, [ endforeach # This only works on Unix-like oses, which is probably fine for dri -prog_ln = find_program('ln', required : false) if prog_ln.found() foreach d : dril_drivers custom_target( diff --git a/src/gallium/targets/va/meson.build b/src/gallium/targets/va/meson.build index 23e6035e359..af79433e4c1 100644 --- a/src/gallium/targets/va/meson.build +++ b/src/gallium/targets/va/meson.build @@ -92,7 +92,18 @@ else [with_gallium_virgl, 'virtio_gpu'], [with_gallium_d3d12_video, 'd3d12']] if d[0] - va_drivers += '@0@_drv_video.so'.format(d[1]) + name = '@0@_drv_video.so'.format(d[1]) + va_drivers += name + + if prog_ln.found() + custom_target( + name, + output : name, + command : [prog_ln, '-sf', libva_gallium.full_path(), '@OUTPUT@'], + build_by_default : true, + ) + endif + endif endforeach