From 338dbc964cf2927d476d1fb89a5751e8cfce39bd Mon Sep 17 00:00:00 2001 From: Emanuele Aina Date: Tue, 27 Sep 2016 15:31:38 +0200 Subject: User argv[0] to internally relaunch meson.py When installing Meson distutils may choose to put shim scripts in the PATH that only set up the egg requirements before launching the real `meson.py` contained in the egg. This means that __file__ points to the real `meson.py` file, but launching it directly is doomed to fail as it's missing the metadata contained in the shim to set up the path egg, resulting in errors when trying to import the `mesonbuild` module. A similar issue affects Meson when installed as a zipapp, with the current code going great lengths to figure out how to relaunch itself. Using argv[0] avoids these issues as it gives us the way the current executable has been launched, so we are pretty much guaranteed that using it will create another instance of the same executable. --- meson.py | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) (limited to 'meson.py') diff --git a/meson.py b/meson.py index fbca883..7f2c49d 100755 --- a/meson.py +++ b/meson.py @@ -17,14 +17,4 @@ from mesonbuild import mesonmain import sys, os -def main(): - thisfile = __file__ - if not os.path.isabs(thisfile): - thisfile = os.path.normpath(os.path.join(os.getcwd(), thisfile)) - if __package__ == '': - thisfile = os.path.dirname(thisfile) - - sys.exit(mesonmain.run(thisfile, sys.argv[1:])) - -if __name__ == '__main__': - main() +sys.exit(mesonmain.run(sys.argv[0], sys.argv[1:])) -- cgit v1.1