From 39f7ed5412a65aa32135a22acbd9e2bcb208165a Mon Sep 17 00:00:00 2001 From: David Rosca Date: Sun, 8 Sep 2024 10:45:30 +0200 Subject: [PATCH] meson/megadriver: Add megadriver_libdir argument To be able to install symlinks to megadriver in different directory. Cc: mesa-stable Part-of: --- bin/install_megadrivers.py | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/bin/install_megadrivers.py b/bin/install_megadrivers.py index 4dc62391582..216f6999feb 100644 --- a/bin/install_megadrivers.py +++ b/bin/install_megadrivers.py @@ -26,21 +26,29 @@ import argparse import os +def resolve_libdir(libdir): + if os.path.isabs(libdir): + destdir = os.environ.get('DESTDIR') + if destdir: + return os.path.join(destdir, libdir[1:]) + else: + return libdir + return os.path.join(os.environ['MESON_INSTALL_DESTDIR_PREFIX'], libdir) + + def main(): parser = argparse.ArgumentParser() parser.add_argument('megadriver') parser.add_argument('libdir') parser.add_argument('drivers', nargs='+') + parser.add_argument('--megadriver_libdir') args = parser.parse_args() - if os.path.isabs(args.libdir): - destdir = os.environ.get('DESTDIR') - if destdir: - to = os.path.join(destdir, args.libdir[1:]) - else: - to = args.libdir + to = resolve_libdir(args.libdir) + if args.megadriver_libdir: + md_to = resolve_libdir(args.megadriver_libdir) else: - to = os.path.join(os.environ['MESON_INSTALL_DESTDIR_PREFIX'], args.libdir) + md_to = to basename = os.path.basename(args.megadriver) master = os.path.join(to, basename) @@ -55,8 +63,11 @@ def main(): if os.path.lexists(abs_driver): os.unlink(abs_driver) - print(f'Installing symlink pointing to {basename} to {abs_driver}') - os.symlink(basename, abs_driver) + + symlink = os.path.relpath(os.path.join(md_to, basename), start=to) + + print(f'Installing symlink pointing to {symlink} to {abs_driver}') + os.symlink(symlink, abs_driver) try: ret = os.getcwd()