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.
pull/358/head
Tim-Philipp Müller 9 years ago
parent 6d2b227dc1
commit f5d63cd47e
  1. 23
      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('{} <source directory> <build directory>'.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('{} <source directory> <build directory>'.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] != '/':

Loading…
Cancel
Save