From ffd02b8ad84728d3529f1beeb06fb9212d31113b Mon Sep 17 00:00:00 2001 From: Eric Engestrom Date: Mon, 25 Nov 2024 18:16:11 +0100 Subject: [PATCH] meson/megadriver: support various lib suffixes Cc: mesa-stable Part-of: --- bin/install_megadrivers.py | 11 ++++++++--- bin/meson.build | 1 + meson.build | 5 +++++ src/gallium/targets/dri/meson.build | 2 +- src/gallium/targets/dril/meson.build | 2 +- src/gallium/targets/va/meson.build | 2 +- src/gallium/targets/vdpau/meson.build | 2 +- 7 files changed, 18 insertions(+), 7 deletions(-) diff --git a/bin/install_megadrivers.py b/bin/install_megadrivers.py index ed2afe91d2c..e467f0d0e71 100644 --- a/bin/install_megadrivers.py +++ b/bin/install_megadrivers.py @@ -42,8 +42,13 @@ def main(): parser.add_argument('libdir') parser.add_argument('drivers', nargs='+') parser.add_argument('--megadriver-libdir') + parser.add_argument('--libname-suffix', required=True) args = parser.parse_args() + # Not neccesarily at the end, there might be a version suffix, but let's + # make sure that the same suffix is in the megadriver lib name. + assert '.' + args.libname_suffix in args.megadriver + to = resolve_libdir(args.libdir) if args.megadriver_libdir: md_to = resolve_libdir(args.megadriver_libdir) @@ -74,7 +79,7 @@ def main(): os.chdir(to) name, ext = os.path.splitext(driver) - while ext != '.so': + while ext != '.' + args.libname_suffix: if os.path.lexists(name): os.unlink(name) os.symlink(driver, name) @@ -82,9 +87,9 @@ def main(): finally: os.chdir(ret) - # Remove meson-created .so symlinks + # Remove meson-created symlinks name, ext = os.path.splitext(master) - while ext != '.so': + while ext != '.' + args.libname_suffix: if os.path.lexists(name): os.unlink(name) name, ext = os.path.splitext(name) diff --git a/bin/meson.build b/bin/meson.build index 73a980fcb10..e6664d7fe74 100644 --- a/bin/meson.build +++ b/bin/meson.build @@ -13,4 +13,5 @@ symbols_check = find_program('symbols-check.py') install_megadrivers_py = find_program('install_megadrivers.py') install_megadrivers = [ install_megadrivers_py.full_path(), + '--libname-suffix', libname_suffix, ] diff --git a/meson.build b/meson.build index 01604867961..db2e404a3fc 100644 --- a/meson.build +++ b/meson.build @@ -20,6 +20,11 @@ project( if host_machine.system() == 'darwin' add_languages('objc', native : false) add_project_arguments('-fobjc-arc', language : 'objc') + libname_suffix = 'dylib' +elif host_machine.system() == 'windows' + libname_suffix = 'dll' +else + libname_suffix = 'so' endif cc = meson.get_compiler('c') diff --git a/src/gallium/targets/dri/meson.build b/src/gallium/targets/dri/meson.build index c1b6ab7772f..3cd38aefe46 100644 --- a/src/gallium/targets/dri/meson.build +++ b/src/gallium/targets/dri/meson.build @@ -67,7 +67,7 @@ libgallium_dri = shared_library( driver_asahi, driver_crocus ], install : true, - name_suffix : 'so', + name_suffix : libname_suffix, ) if with_gallium_va or with_gallium_vdpau diff --git a/src/gallium/targets/dril/meson.build b/src/gallium/targets/dril/meson.build index 1da0c082312..fad5c4784f6 100644 --- a/src/gallium/targets/dril/meson.build +++ b/src/gallium/targets/dril/meson.build @@ -59,7 +59,7 @@ dril_dri = shared_library( # Will be deleted during installation, see install_megadrivers.py install : true, install_dir : dri_drivers_path, - name_suffix : 'so', + name_suffix : libname_suffix, ) foreach d : [[with_gallium_kmsro, [ diff --git a/src/gallium/targets/va/meson.build b/src/gallium/targets/va/meson.build index cdf2e49edeb..8e7bfedc4cb 100644 --- a/src/gallium/targets/va/meson.build +++ b/src/gallium/targets/va/meson.build @@ -84,7 +84,7 @@ else link_depends : va_link_depends, install : true, install_dir : va_drivers_path, - name_suffix : 'so', + name_suffix : libname_suffix, ) foreach d : [[with_gallium_r600, 'r600'], diff --git a/src/gallium/targets/vdpau/meson.build b/src/gallium/targets/vdpau/meson.build index e8523e02db8..c8630b42150 100644 --- a/src/gallium/targets/vdpau/meson.build +++ b/src/gallium/targets/vdpau/meson.build @@ -47,7 +47,7 @@ libvdpau_gallium = shared_library( soversion : '@0@.@1@.0'.format(VDPAU_MAJOR, VDPAU_MINOR), install : true, install_dir : vdpau_drivers_path, - name_suffix : 'so', + name_suffix : libname_suffix, ) foreach d : [[with_gallium_r600, 'r600'], [with_gallium_radeonsi, 'radeonsi'],