Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Ardupilot
GitHub Repository: Ardupilot/ardupilot
Path: blob/master/waf
13805 views
#!/usr/bin/env python3

import os.path as p
import subprocess
import sys

# default Python of the oldest Standard Support Debian + Ubuntu LTS.
# Debian releases: https://www.debian.org/releases
# Ubuntu releases: https://releases.ubuntu.com
# also update `cfg.check_python_version` in `./wscript` and `target-version` in `pyproject.toml`
MIN_VER = (3, 9, 0)

# check before we start loading code and e.g. encounter SyntaxErrors. this means
# this file should remain compatible with any Python 3 (at least syntax-wise).
if sys.version_info[:3] < MIN_VER:
    min_txt = ".".join(str(v) for v in MIN_VER)
    current_txt = ".".join(str(v) for v in sys.version_info[:3])
    print("ERROR: Python minimum supported version is",
          min_txt, "but you have", current_txt, file=sys.stderr)
    sys.exit(1)

d = p.dirname(p.realpath(__file__))
waf_light = p.join(d, 'modules', 'waf', 'waf-light')

python = sys.executable

try:
    subprocess.check_call([python, waf_light] + sys.argv[1:])
except subprocess.CalledProcessError as e:
    if e.returncode != 2 or p.isfile(waf_light):
        sys.exit(1)

    print('Missing waf submodule. Trying to get it')

    try:
        subprocess.check_call(['git', 'submodule', 'update', '--init',
                               'modules/waf'])
    except subprocess.CalledProcessError:
        print('Could not update submodule', file=sys.stderr)
        sys.exit(1)

    print('Submodules OK, try running again')