diff options
author | Jonathan Gray <jsg@cvs.openbsd.org> | 2019-01-29 10:51:18 +0000 |
---|---|---|
committer | Jonathan Gray <jsg@cvs.openbsd.org> | 2019-01-29 10:51:18 +0000 |
commit | 726e4bceb8bf5b8123eda80e45a9fdeb016f3790 (patch) | |
tree | 32ed745d6aeb44b4c130f647e49d6627320a3857 /lib/mesa/bin/install_megadrivers.py | |
parent | 5c0a71df6e14d3ae04cc0faa6dad6e5d0a01d27a (diff) |
Import Mesa 18.3.2
Diffstat (limited to 'lib/mesa/bin/install_megadrivers.py')
-rw-r--r-- | lib/mesa/bin/install_megadrivers.py | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/lib/mesa/bin/install_megadrivers.py b/lib/mesa/bin/install_megadrivers.py new file mode 100644 index 000000000..d29b19112 --- /dev/null +++ b/lib/mesa/bin/install_megadrivers.py @@ -0,0 +1,74 @@ +# encoding=utf-8 +# Copyright © 2017-2018 Intel Corporation + +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: + +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. + +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +"""Script to install megadriver symlinks for meson.""" + +from __future__ import print_function +import argparse +import os +import shutil + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument('megadriver') + parser.add_argument('libdir') + parser.add_argument('drivers', nargs='+') + args = parser.parse_args() + + if os.path.isabs(args.libdir): + to = os.path.join(os.environ.get('DESTDIR', '/'), args.libdir[1:]) + else: + to = os.path.join(os.environ['MESON_INSTALL_DESTDIR_PREFIX'], args.libdir) + + master = os.path.join(to, os.path.basename(args.megadriver)) + + if not os.path.exists(to): + if os.path.lexists(to): + os.unlink(to) + os.makedirs(to) + shutil.copy(args.megadriver, master) + + for driver in args.drivers: + abs_driver = os.path.join(to, driver) + + if os.path.lexists(abs_driver): + os.unlink(abs_driver) + print('installing {} to {}'.format(args.megadriver, abs_driver)) + os.link(master, abs_driver) + + try: + ret = os.getcwd() + os.chdir(to) + + name, ext = os.path.splitext(driver) + while ext != '.so': + if os.path.lexists(name): + os.unlink(name) + os.symlink(driver, name) + name, ext = os.path.splitext(name) + finally: + os.chdir(ret) + os.unlink(master) + + +if __name__ == '__main__': + main() |