The Meson Build System http://mesonbuild.com/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

41 lines
1.1 KiB

from __future__ import annotations
import os
import shutil
import subprocess
from . import destdir_join
import argparse
import typing as T
parser = argparse.ArgumentParser()
parser.add_argument('--install')
parser.add_argument('--extra-extension-path', action="append", default=[])
parser.add_argument('--name')
parser.add_argument('--builddir')
parser.add_argument('--project-version')
parser.add_argument('--docdir')
def run(argv: T.List[str]) -> int:
options, args = parser.parse_known_args(argv)
subenv = os.environ.copy()
val = subenv.get('PYTHONPATH')
paths = [val] if val else []
subenv['PYTHONPATH'] = os.pathsep.join(paths + options.extra_extension_path)
res = subprocess.call(args, cwd=options.builddir, env=subenv)
if res != 0:
return res
if options.install:
source_dir = os.path.join(options.builddir, options.install)
destdir = os.environ.get('DESTDIR', '')
installdir = destdir_join(destdir, options.docdir)
shutil.rmtree(installdir, ignore_errors=True)
shutil.copytree(source_dir, installdir)
return 0