aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/mdist.py
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2020-09-03 00:12:47 +0200
committerDaniel Mensinger <daniel@mensinger-ka.de>2020-09-04 15:38:12 +0200
commit492afe50a439d70df99d6e3e59572aff55e14c6b (patch)
tree80bb5b3013cacaf2884cc06e167da04b193dafc6 /mesonbuild/mdist.py
parentfa5c2363eb1dd94058aac1a4045d2ab546eed7b9 (diff)
downloadmeson-492afe50a439d70df99d6e3e59572aff55e14c6b.zip
meson-492afe50a439d70df99d6e3e59572aff55e14c6b.tar.gz
meson-492afe50a439d70df99d6e3e59572aff55e14c6b.tar.bz2
environment: use ExternalProgram to find ninja
This allows the NINJA environment variable to support all the Windows special cases, especially allowing an absolute path without extension. Based on a patch by Yonggang Luo. Fixes: #7659 Suggested-by: Nirbheek Chauhan <nirbheek@centricular.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'mesonbuild/mdist.py')
-rw-r--r--mesonbuild/mdist.py12
1 files changed, 6 insertions, 6 deletions
diff --git a/mesonbuild/mdist.py b/mesonbuild/mdist.py
index 9d94ace..fbda240 100644
--- a/mesonbuild/mdist.py
+++ b/mesonbuild/mdist.py
@@ -180,19 +180,19 @@ def create_dist_hg(dist_name, archives, src_root, bld_root, dist_sub, dist_scrip
output_names.append(zipname)
return output_names
-def run_dist_steps(meson_command, unpacked_src_dir, builddir, installdir, ninja_bin):
+def run_dist_steps(meson_command, unpacked_src_dir, builddir, installdir, ninja_args):
if subprocess.call(meson_command + ['--backend=ninja', unpacked_src_dir, builddir]) != 0:
print('Running Meson on distribution package failed')
return 1
- if subprocess.call([ninja_bin], cwd=builddir) != 0:
+ if subprocess.call(ninja_args, cwd=builddir) != 0:
print('Compiling the distribution package failed')
return 1
- if subprocess.call([ninja_bin, 'test'], cwd=builddir) != 0:
+ if subprocess.call(ninja_args + ['test'], cwd=builddir) != 0:
print('Running unit tests on the distribution package failed')
return 1
myenv = os.environ.copy()
myenv['DESTDIR'] = installdir
- if subprocess.call([ninja_bin, 'install'], cwd=builddir, env=myenv) != 0:
+ if subprocess.call(ninja_args + ['install'], cwd=builddir, env=myenv) != 0:
print('Installing the distribution package failed')
return 1
return 0
@@ -206,7 +206,7 @@ def check_dist(packagename, meson_command, extra_meson_args, bld_root, privdir):
if os.path.exists(p):
windows_proof_rmtree(p)
os.mkdir(p)
- ninja_bin = detect_ninja()
+ ninja_args = detect_ninja()
shutil.unpack_archive(packagename, unpackdir)
unpacked_files = glob(os.path.join(unpackdir, '*'))
assert(len(unpacked_files) == 1)
@@ -216,7 +216,7 @@ def check_dist(packagename, meson_command, extra_meson_args, bld_root, privdir):
if o['name'] not in ['backend', 'install_umask', 'buildtype']]
meson_command += extra_meson_args
- ret = run_dist_steps(meson_command, unpacked_src_dir, builddir, installdir, ninja_bin)
+ ret = run_dist_steps(meson_command, unpacked_src_dir, builddir, installdir, ninja_args)
if ret > 0:
print('Dist check build directory was {}'.format(builddir))
else: