diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2020-10-13 23:38:51 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-13 23:38:51 +0300 |
commit | 3372c58ca633e2bc7d5b36bcd7e0d14d12e0f82a (patch) | |
tree | e0af9977e708170d136104e4eb056b6f9f31eda0 /run_cross_test.py | |
parent | 55cf399ff8b9c15300f26dd1a46045dda7d49f98 (diff) | |
parent | f5c9bf96b370832fc1a6e50771e2c171de0cd79d (diff) | |
download | meson-3372c58ca633e2bc7d5b36bcd7e0d14d12e0f82a.zip meson-3372c58ca633e2bc7d5b36bcd7e0d14d12e0f82a.tar.gz meson-3372c58ca633e2bc7d5b36bcd7e0d14d12e0f82a.tar.bz2 |
Merge pull request #7816 from mensinda/cmCross
cmake: Cross compilation support
Diffstat (limited to 'run_cross_test.py')
-rwxr-xr-x | run_cross_test.py | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/run_cross_test.py b/run_cross_test.py index 836cf31..5ce3e55 100755 --- a/run_cross_test.py +++ b/run_cross_test.py @@ -23,10 +23,13 @@ import argparse import subprocess from mesonbuild import mesonlib from mesonbuild.coredata import version as meson_version +from pathlib import Path +import json +import os -def runtests(cross_file, failfast, cross_only): - tests = ['--only', 'common'] +def runtests(cross_file, failfast, cross_only, test_list, env=None): + tests = ['--only'] + test_list if not cross_only: tests.append('native') cmd = mesonlib.python_command + ['run_project_tests.py', '--backend', 'ninja'] @@ -36,7 +39,7 @@ def runtests(cross_file, failfast, cross_only): cmd += ['--cross-file', cross_file] if cross_only: cmd += ['--native-file', 'cross/none.txt'] - return subprocess.call(cmd) + return subprocess.call(cmd, env=env) def main(): parser = argparse.ArgumentParser() @@ -44,7 +47,16 @@ def main(): parser.add_argument('--cross-only', action='store_true') parser.add_argument('cross_file') options = parser.parse_args() - return runtests(options.cross_file, options.failfast, options.cross_only) + cf_path = Path(options.cross_file) + try: + data = json.loads(cf_path.read_text()) + real_cf = cf_path.resolve().parent / data['file'] + assert real_cf.exists() + env = os.environ.copy() + env.update(data['env']) + return runtests(real_cf.as_posix(), options.failfast, options.cross_only, data['tests'], env=env) + except Exception: + return runtests(options.cross_file, options.failfast, options.cross_only, ['common']) if __name__ == '__main__': print('Meson build system', meson_version, 'Cross Tests') |