From f5d63cd47ec4306b4425c079a2a61148b4d589be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Fri, 15 Jan 2016 15:33:46 +0000 Subject: [PATCH] meson: try harder to infer build and source directories if called without arguments If there's no meson.build file in the current directory and there is one in the parent directory, assume that we are in the build directory. --- mesonbuild/mesonmain.py | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/mesonbuild/mesonmain.py b/mesonbuild/mesonmain.py index 6317c95a0..dfeb06eb6 100644 --- a/mesonbuild/mesonmain.py +++ b/mesonbuild/mesonmain.py @@ -223,15 +223,22 @@ def run(mainfile, args): return 0 args = options.directories if len(args) == 0 or len(args) > 2: - print('{} '.format(sys.argv[0])) - print('If you omit either directory, the current directory is substituted.') - print('Run {} --help for more information.'.format(sys.argv[0])) - return 1 - dir1 = args[0] - if len(args) > 1: - dir2 = args[1] + # if there's a meson.build in the dir above, and not in the current + # directory, assume we're in the build directory + if len(args) == 0 and not os.path.exists('meson.build') and os.path.exists('../meson.build'): + dir1 = '..' + dir2 = '.' + else: + print('{} '.format(sys.argv[0])) + print('If you omit either directory, the current directory is substituted.') + print('Run {} --help for more information.'.format(sys.argv[0])) + return 1 else: - dir2 = '.' + dir1 = args[0] + if len(args) > 1: + dir2 = args[1] + else: + dir2 = '.' while os.path.islink(mainfile): resolved = os.readlink(mainfile) if resolved[0] != '/':